ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
## **获取数据** 在模型外部获取数据的方法如下 ~~~ $user = User::find(1);//如果表中无记录会报# Trying to get property 'create\_time' of non-object echo $user->create_time; echo $user->name; ~~~ 由于模型类实现了`ArrayAccess`接口,所以可以当成数组使用。 ~~~ $user = User::find(1); echo $user['create_time']; echo $user['name']; ~~~ 如果你是在模型内部获取数据的话,需要改成: ~~~ $user = $this->find(1); echo $user->getAttr('create_time'); echo $user->getAttr('name'); ~~~ 否则可能会出现意想不到的错误。 ## **模型赋值** ``` <?php namespace app\index\controller; use app\BaseController; //use think\View; //use think\facade\View; use app\index\model\User as UserModel; class User extends BaseController { public function addUser() { //模型赋值1(此方式会调用模型修改器方法) $user = new UserModel(); $user->name = 'thinkphp'; $user->score = 100; //模型赋值2(此方式会调用模型修改器方法) $user = new UserModel(); $data['name'] = 'thinkphp'; $data['score'] = 100; //第二个参数为true则会调用模型修改器的方法 $user->data($data, true); //第三个参数是字段过滤 只更新data数组里的name和score字段 $user->data($data, true, ['name','score']); //模型赋值3(不会调用模型修改器方法) $user = new UserModel(); $data['name'] = 'thinkphp'; $data['score'] = 100; $user->data($data); //赋值完成 执行 //模型赋值4(不会调用模型修改器方法) $data['name'] = 'thinkphp'; $data['score'] = 100; $user = new UserModel($data); //注意此时模型赋值并没有插入数据库 //save方法就是将赋值好值的字段插入数据库 //模型新增:save 成功返回1 $user->save(); } ```