data(array)->save();"."/> data(array)->save();".">

Maison  >  Article  >  cadre php  >  Comment utiliser la méthode save dans thinkphp5

Comment utiliser la méthode save dans thinkphp5

WBOY
WBOYoriginal
2022-02-18 14:57:545432parcourir

Dans thinkphp5, la méthode save() est utilisée pour ajouter un enregistrement à la table de données spécifiée. Cette méthode ne peut ajouter qu'un seul nouvel enregistrement à la table à la fois. L'ajout de plusieurs enregistrements peut être répété. -> save(array)" ou "objet modèle->

Comment utiliser la méthode save dans thinkphp5

L'environnement d'exploitation de cet article : système Windows 10, ThinkPHP version 5, ordinateur Dell G3.

Comment utiliser la méthode save dans thinkphp5

Ajouter une seule donnée : méthode save()

Fonction : Ajouter un enregistrement à la table de données spécifiée

Cette méthode ne peut ajouter qu'un seul nouvel enregistrement à la table à la fois. temps et ajouter plusieurs enregistrements. Elle peut être exécutée à plusieurs reprises, mais le saveAll() que nous apprendrons plus tard peut ajouter plusieurs éléments à la fois

Code source : /thinkphp/library/think/Model.php

La méthode de sauvegarde en est une. des méthodes les plus complexes de la classe Model, car la méthode save porte plusieurs chapeaux, non seulement pour les nouveaux ajouts, mais également pour la mise à jour des données.

Syntaxe de base :

Format 1 : écrivez les données directement dans les paramètres de la méthode de sauvegarde

模型对象 -> save(数组);

Format 2 : générez d'abord l'objet de données, puis utilisez la méthode de sauvegarde pour l'écrire directement dans la table

模型对象 -> data(数组) -> save();

Les deux deux syntaxes peuvent compléter les nouvelles opérations d'ajout. Mais la deuxième structure grammaticale est plus claire, plus lisible et plus pratique à modifier.

Méthode
<?php
namespace app\index\controller;
use app\index\model\Staff;
class Index {
  public function index(){
  //1.创建数据:与表中字段对应
  $data = [];
  $data[&#39;name&#39;] = &#39;周星星&#39;;
  $data[&#39;sex&#39;] = 1;
  $data[&#39;age&#39;] = 39;
  $data[&#39;salary&#39;] = 3500;
  $data[&#39;dept&#39;] = 3;
  $data[&#39;hiredate&#39;] = date(&#39;Y-m-d&#39;,time());
  //2.创建数据对象
  $model = (new Staff())-> data($data);
  //3.获取新增操作执行前:数据对象原始数据
  $data_before = $model -> getData();
  //4.查看新增操作执行前的数据对象:$model
  echo &#39;查看新增操作执行前的数据对象:<br />&#39;;
  dump($data_before);
  //5.将数据对象原始数据写入数据表中,返回影响记录数
//allowField(true)过滤post数组中的非数据表字段数据
  $affected = $model -> allowField(true) -> save(); 
  //6.获取新增操作执行后:数据对象原始数据
  $data_after = $model -> getData();
  //7.查看新增操作执行后的数据对象:$model
  echo &#39;查看新增操作执行后的数据对象:<br />&#39;;
  dump($data_after);
  //8. 获取新增记录的主键id,等价于: $model -> id 
  $insert_ID = $affected ? $data_after[&#39;id&#39;] : null;
  //6.验证是否新增成功
  echo $affected ? &#39;新增成功!新记录主键id是:&#39;.$insert_ID : &#39;新增失败!&#39;;    
  }
}

save()

class Index {
  public function index(){
  //1.创建数据:与表中字段对应
  $data = [];
  $data[&#39;name&#39;] = &#39;周星星&#39;;
  $data[&#39;sex&#39;] = 1;
  $data[&#39;age&#39;] = 39;
  $data[&#39;salary&#39;] = 3500;
  $data[&#39;dept&#39;] = 3;
  $data[&#39;hiredate&#39;] = date(&#39;Y-m-d&#39;,time());
  $model = new Staff();
$affected = $model -> allowField(true) -> save($data); 
  $data[&#39;name&#39;] = &#39;周星星&#39;;
  $data[&#39;sex&#39;] = 1;
  $data[&#39;age&#39;] = 39;
  $data[&#39;salary&#39;] = 3000;
  $data[&#39;dept&#39;] = 3;
  $data[&#39;hiredate&#39;] = date(&#39;Y-m-d&#39;,time());
$affected = $model -> allowField(true)
                           -> setAttr(&#39;id&#39;,null)  //清空ID
                           -> isUpdate(false)     //显式指定新增
                           -> save($data);

Apprentissage recommandé : "Tutoriel vidéo PHP"

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