ThinkPHP5学习(12)模型和关联

xiaoxiao2021-02-28  105

学习内容及参考: 视频教程: https://www.kancloud.cn/tpshop/thinkphp5/228855 完全开发手册:https://www.kancloud.cn/manual/thinkphp5/135186 教程中的代码:https://github.com/phpervip/tp5a

在application/index下建model目录。 以Test为例,自定义表名,这种比较少。

现在以User为例。 你只要在model下建好Users.php就可以了。

如果表名为user_level,model下命名为UserLevel.php.

Model模型和表映射 User->tp_user UserLevel->tp_user_level

表名绑定类名

命名空间 namespace app\index\model; use think\Model;

控制器中调用 use app\index\model\User; User::get(1);

// 设置数据表(不含前缀) protected name=admin;//protected table = “tp_account_log”;

<?php // application/index/model/User.php namespace app\index\model; use think\Model; class User extends Model { }

只是看看不够的,你必须要自己动手,至少敲一遍。

<?php namespace app\index\controller; use think\Controller; use app\index\model\User; use app\index\model\UserLevel; class index2 extends Controller { public function index(){ $a = User::get(1); print_r($a); /*$b = UserLevel::get(1); print_r($b);*/ // 插入操作 $user = new User; $user->email = '13@qq.com'; $user->mobile = '13888000000'; // $user->aa = '12345'; $user->save(); // 插入操作 $userArr['email']='13@qq.com'; $userArr['mobile']='13888000000'; if($result =$user->create($userArr)){ echo "用户id:{$result->id}邮件:{$result->email}手机{$result->mobile}"; } // 批量新增 $user = new User; $list = [ ['email'=>'123@qq.com','mobile'=>'12345'], ['email'=>'234@qq.com','mobile'=>'23456'] ]; if($user->saveAll($list)){ echo '用户批量新量成功'; } // 查询数据 $user = User::get(1); // 返回一个对象 echo $user->email; echo '<br/>'; echo $user->mobile; // 因为实现了 \ArrayAccess接口,可以将对象象数组一样访问 $user = User::get(2); echo $user['email']; echo $user['mobile']; // 根据某个条件查询数据 getByXxx()方法 $user = User::getByMobile('12345'); $user = User::get(['mobile'=>'12345','email'=>'123@qq.com']); $user = User::where(['mobile'=>'12345','email'=>'123@qq.com'])->find(); echo $user['mobile']; // 如果要查询多个数据,可以使用模型的all方法 $list = UserLevel::all(); $list = UserLevel::all(['level_id'=>4]); $list = UserLevel::where('level_id','<=',3)->select(); foreach($list as $v){ echo 'id:'.$v->level_id; echo '==等级名称:'.$v->level_name; echo '<br/>'; } // 对于数据库查询出来的数据更新数据 $user = User::get(1); $user->mobile = '98876'; $user->email = 'hello@qq.com'; if(false!==$user->save()){ return '更新用户成功'; }else{ return $user->getError(); } // 自己定义是数据更新操作 $userArr['mobile']='12345'; $userArr['email']='33@qqc.om'; User::update($userArr,['user_id'=>1]); // 删除操作 $user = User::get(2); $user->delete(); // 或者使用 User::destroy(3); } }

最后留两个思考题: 1. user=User::getByMobile(123456);getByXxx()XxxUsermodel2. user = new User; user>email=123@qq.com; user->mobile =”123456”; //没有定义的属性为什么能赋值。 user>aaa=1234; user->save();

转载请注明原文地址: https://www.6miu.com/read-65905.html

最新回复(0)