Opérations d'ajout, de suppression, de modification et de vérification de Thinkphp5 (ajouter, supprimer, modifier et vérifier des modèles)
Comment ajouter, supprimer, modifier et vérifier des modèles dans Thinkphp5, c'est très simple.
Créez d'abord un contrôleur dans le répertoire applicationindexcontroller et nommez-le : Index.php
Index.php Le code est le suivant. J'ai créé le contrôleur sous le module applicationindexcontroller. Si ce n'est pas le module index, votre espace de noms devrait. être remplacé par L'espace de noms correspondant à votre propre module.
<?php namespace app\index\controller; use app\index\model\Admin; class Index { public function index(){ Admin::index(); } }
Créez ensuite un modèle dans le répertoire applicationindexmodel et nommez-le Admin.php
Admin.php Le code est le suivant. J'ai créé le modèle sous le module applicationindexmodel. Si ce n'est pas le module d'index, votre espace de noms devrait l'être. modifié pour correspondre à votre propre espace de noms de module.
Admin.php (Parlons d'abord de l'opération de requête de modèle)
<?php namespace app\index\model; use think\Model; class Admin extends Model { // 设置当前模型对应的完整数据表名称 protected $table = 'user'; public static function index(){ $list = '14'; /* 单条数据查询操作,all方法是tp5框架规定的查询方法,all里面是一个闭包,作为变量传入, 不要纠结闭包构造,直接复制用即可,不需要关注$query是什么?框架内部实现时传值进去, 执行where方法,只需要关注where条件和传的变量$list即可。 $list值自己可定 如上面$list = 14,id可自己定,查询id=14这一条数据 */ $re = Admin::all(function($query) use ($list) { $query->where('id','=',$list); }); //echo '<pre/>';var_dump($re[0]->data); } }
<?php namespace app\index\model; use think\Model; class Admin extends Model { // 设置当前模型对应的完整数据表名称 protected $table = 'user'; public static function index(){ $list = ['13','14']; /* 这是多条查询,查询id=13和14这两条数据,同上述只需要关注where里面的条件即可, 如果查name或其它字段把where里的id改成name即可,$list也封装好了, 你可以传值进去,就像我上面$list 等于一个数组,*/ $re = Admin::all(function($query) use ($list) { $query->where('id','in',$list); }); // echo '<pre/>';var_dump($re); } }
<?php namespace app\index\model; use think\Model; use think\Db; class Admin extends Model { public static function index() { /* join查询,查询两个表以上的数据 Db::table 要加上use think\Db; 这里查的是user表的id等于sessions表的id,两个表里的符合条件的全部数据 */ $re = Db::table('user') ->alias('a') ->join('sessions w','a.id = w.id') ->select(); // var_dump($re);die; } }
namespace app\index\model; use think\Model; use think\Db; class Admin extends Model { // 数据表名 这里要提一下,表名必须是完整的表名,要带上表前缀,哪怕在配置文件里面设置了表前缀。 protected $table = 'fa_kindex'; // 查询 public static function index() { // 如果要查询一张表中所有字段信息,直接写个闭包在里面就可以了, $result = Index::select( function() {} ); return $result; // $offset = 0, $limit = 1, $result = Index::select( // use()里面写传进闭包中的变量,如下面的 use ($offset , $limit) function($query) use ($offset , $limit , $rid) { /* 闭包构造 $query可以衔接order,limit,where,field等条件。但不能写成 $query->select();因为这样select方法会执行两次 可以写成 $query->order('id','asc'), //根据id升序查询 $query->limit($offset , $limit) $query->field('id',true); //查询除id字段外的所有字段数据 // 查询符合id = 1的id,name字段的数据,查询结果按id升序排列 $query->field('id','name')->where('id=1')->order('id','asc'); */ $query->order('id','asc')->limit($offset , $limit)->field('id',true)->where('rid ='.$rid); } ); return $result; } }
Bien sûr, beaucoup de gens disent qu'après l'interrogation, ils obtiennent des objets de classe C'est parce que tp3.2 renvoie directement les résultats de la requête, tandis que tp5 ne renvoie pas directement les résultats de la requête. les résultats de la requête. , renvoie l'intégralité de la classe instanciée et place les résultats de la requête dans l'attribut data de la classe, alors comment obtenir les données. Imaginez comment accéder aux attributs de la classe après avoir instancié la classe, ce n'est pas difficile à faire ? comprenez, utilisez -> Allez le chercher,
echo '<pre/>';var_dump($re[0]->data);
De cette façon, vous pouvez obtenir les données, tout comme tp3.2. Bien sûr, il s'agit d'un seul élément, vous pouvez obtenir la valeur clé de $. êtes dans une boucle foreach.
Admin.php (opération de suppression de modèle)
<?php namespace app\index\model; use think\Model; class Admin extends Model { // 设置当前模型对应的完整数据表名称 protected $table = 'user'; public static function index(){ $list = '14'; /*单条数据删除操作 ,同上面的单条查询一样,只关注where条件和传的变量$list即可 $list值自己可定 如上面$list = 14,id可自己定,删除id=14这一条数据 */ Admin::destroy(function($query) use ($list) { $query->where('id','=',$list); }); } }
<?php namespace app\index\model; use think\Model; class Admin extends Model { // 设置当前模型对应的完整数据表名称 protected $table = 'user'; public static function index(){ $list = ['1','3']; /*多条数据删除操作 ,同上面的多条查询一样,只关注where条件和传的变量$list即可 $list值自己可定 如上面$list等于一个数组,id可自己定,删除id=1和id=3两条数据 */ Admin::destroy(function($query) use ($list) { $query->where('id','in',$list); }); } }
Admin.php (opération de modification de modèle)
<?php namespace app\index\model; use think\Model; class Admin extends Model { // 设置当前模型对应的完整数据表名称 protected $table = 'user'; public static function index(){ // 静态方法里执行非静态方法,new static就是本类,reindex为本类的reindex方法 $method = new \ReflectionMethod(new static,'reindex'); $method->invokeArgs(new static,array()); } public function reindex(){ $id = '5'; $list = [ 'goods_id' => $goods_id, 'user_id' => $_SESSION['user_id'], ]; /* 因为isUpdate方法是非静态方法,只能用$this调用,根据手册isUpdate(true) 是更新,isUpdate(false)是查询,tp5方法有点多还有点乱,但不要紧实际写业务逻辑时, 记住固定句型即可,像下面我们只关注save里面传入什么东西即可,跟上面的where一样, 后面写条件,前面写修改的内容,将符合$list条件的sql语句中的rid字段值修改为0; $list是条件可设置多个条件,如上面的$list数组 */ $this->isUpdate(true)->save(['rid' => '0'],$list); } }
Admin.php (opération d'ajout de modèle)
<?php namespace app\index\model; use think\Model; class Admin extends Model { // 设置当前模型对应的完整数据表名称 protected $table = 'user'; public static function index(){ $username = 'Thinkphp'; $passwd = '123456'; /* 增加一条数据,Admin::create(),调用框架静态方法create,这里提一下Admin 是你模型的名字,如果建立的模型是user,那就写User::create(), 同样只关注create里改传入什么参数即可。新增一条数据,username插入值是$username passwd插入值是$passwd,你可以根据自己需求制定字段的值,别死板灵活点*/ Admin::create([ 'username' => $username, 'passwd' => $passwd, ]); } }
Recommandations associées : Les 10 derniers tutoriels vidéo thinkphp
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!