Maison >développement back-end >tutoriel php >thinkPHP5 implémente la méthode d'ajout de contenu à la base de données

thinkPHP5 implémente la méthode d'ajout de contenu à la base de données

不言
不言original
2018-06-07 14:44:483087parcourir

Cet article présente principalement la méthode d'ajout de contenu à la base de données dans thinkPHP5. Il analyse en détail les compétences opérationnelles liées à la configuration, au modèle, à l'utilisation du contrôleur et à l'insertion de données de la base de données thinkPHP5 sous la forme d'exemples auxquels les amis dans le besoin peuvent se référer. it

L'exemple de cet article décrit comment thinkPHP5 implémente l'ajout de contenu à la base de données. Je le partage avec vous pour votre référence. Les détails sont les suivants :

Lorsqu'un nouveau framework est installé, je ne sais généralement pas quoi faire. Créez ensuite d’abord une fonction d’écriture.

Tout d'abord, préparez-vous et connectez-vous à la base de données.

Le fichier de configuration se trouve dans database.php sous l'application

return [
  // 数据库类型
  'type'      => 'mysql',
  // 服务器地址
  'hostname'    => '127.0.0.1',
  // 数据库名
  'database'    => 'shoptest',
  // 用户名
  'username'    => 'root',
  // 密码
  'password'    => '',
  // 端口
  'hostport'    => '3306',
  // 连接dsn
  'dsn'       => '',
  // 数据库连接参数
  'params'     => [],
  // 数据库编码默认采用utf8
  'charset'     => 'utf8',
  // 数据库表前缀
  'prefix'     => '',
  // 数据库调试模式
  'debug'      => true,
  // 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器)
  'deploy'     => 0,
  // 数据库读写是否分离 主从式有效
  'rw_separate'   => false,
  // 读写分离后 主服务器数量
  'master_num'   => 1,
  // 指定从服务器序号
  'slave_no'    => '',
  // 是否严格检查字段是否存在
  'fields_strict'  => true,
  // 数据集返回类型
  'resultset_type' => 'array',
  // 自动写入时间戳字段
  'auto_timestamp' => false,
  // 时间字段取出后的默认时间格式
  'datetime_format' => 'Y-m-d H:i:s',
  // 是否需要进行SQL性能分析
  'sql_explain'   => false,
];

Après l'avoir configuré, laissez-le tranquille et créez d'abord un contrôleur

Dans la collection téléchargée par défaut, il y a un dossier d'index dans le dossier de l'application.

est un dossier utilisé pour stocker les contrôleurs, les classes et les modèles, et le nom peut être modifié.

Si vous avez utilisé la version 3.2, ce sera facile à comprendre, c'est équivalent au fichier home d'origine.

Créez d'abord trois dossiers dans ce dossier

Créez ensuite un nouveau fichier index.php dans le dossier du contrôleur (en fait, il y en a un par défaut).

Écrivez du code comme celui-ci dans la classe class

public function indexs()
{
    return '我打开控制器了';
}

Entrez le nom du serveur /index/index/indexs dans la barre d'URL

Vous pouvez voir une ligne de texte.

Ajoutez-le et présentez d'abord le modèle.

Ajoutez d'abord l'utilisation de thinkView ; présentez la bibliothèque de modèles.

$view = new View;
return $view->fetch('模板名');

Alors, où mettre le modèle. Le dossier du contrôleur a un dossier d'affichage

Si vous y faites glisser le fichier modèle directement, une erreur sera signalée.

Regardez la seconde moitié du chemin d'erreur. /application/indexviewindexadda.html

application/index/view peut être trouvé

Ensuite, il y a un autre nom de dossier et un autre nom de fichier.

Ce dossier correspond au nom du contrôleur, ce qui signifie qu'un dossier correspondant doit être créé. Faites ensuite glisser le modèle pour l'appeler. Bien entendu, un framework complet n’aura pas seulement cette méthode. D'autres détails seront étudiés ultérieurement.

Deux méthodes couramment utilisées pour rédiger des soumissions de formulaires, input('post.xxx') fait référence à l'obtention de la valeur de la publication.

//调用Db类
use think\Db;
$data = ['title' => input('post.title'), 'content' => input('post.title')];
Db::table('blogmsg')->insert($data);
//建立model的写法
$mod = new \app\index\model\Blogmsg;
$mod->title = input('post.title');
$mod->content = input('post.content');
$mod->save();
echo $mod->id;

Relativement parlant, je préfère personnellement cette façon d'écrire. Utilisez Request pour terminer l’ajout. (Ce sera bon pour une utilisation future de Laravel)

//引入Request。
use think\Request;
public function add(Request $req){
  //如果添加的内容需要处理,先单独取出然后赋值进去($req->post('title')可以获取其中的值)
  $a = rtrim($req->post('title'),' ');
  $req->post(['title'=>$a]);
  //准备添加
  $mod = new \app\index\model\Blogmsg;
  //allowField可以选择只添加哪些字段。
  $mod->allowField(['title','content'])->save($req->post());
  //获取返回的主键
  echo $mod->id;
}

Lorsqu'il s'agit d'ajouter des données, une vérification automatique est absolument nécessaire.

Cette fois, la vérification automatique peut être écrite dans un fichier séparé. Créez un dossier Validate dans le dossier index et créez un fichier php avec le même nom que le dossier Model à l'intérieur. Facile à utiliser.

Échantillon

namespace app\index\validate;
use think\Validate;
class Blogmsg extends Validate
{
  //写规则
  protected $rule = [
    'title' => 'require|max:25',
    'content' => 'require|max:255',
  ];
  //写报错返回信息
  protected $message = [
    'title.require' => '必须填写',
    'title.max' => '不能超过25个字符',
    'content.require' => '必须填写',
    'content.max' => '不能超过255个字符',
  ];
  protected $scene = [
    'add' => ['title','content'],
    'edit' => ['title','content'],
  ];
}

Puis modifications de la partie contrôleur

$a = $mod->validate(true)->allowField(['title','content'])->save($req->post());
if(false === $a){
  // 验证失败 输出错误信息
  dump($mod->getError());
  die;
}

Enfin, créez une fonction de jeton de formulaire pour empêcher les soumissions répétées et les soumissions à distance : ajoutez {:token()} au formulaire dans le modèle, puis apportez des modifications aux règles de vérification. Ajoutez un jeton à la vérification. règles. . Comme suit :

'title' => 'require|max:25|token',

À ce stade, la partie ajout d'article prend fin.

Ce qui précède représente l'intégralité du contenu de cet article. Merci à tous d'avoir lu. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois !

Recommandations associées :

pensez à l'ajout, à la suppression, à la modification et à la vérification du code d'implémentation de la base de données de la version PHP3.2.3

PHP implémente l'envoi et recevoir la demande JSON

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn