ThinkPHP5里在数据模型类中如何调用自身的方法?

比如更新记录,官方文档是这样写的。 我现在想把该功能封装在一个继承了Model的类里面。

https://img2.mukewang.com/5c8f3bb20001dd6105450120.jpg

https://img.mukewang.com/5c8f3bb3000121a706420092.jpg

这样写会报错说没有相应的静态方法
self::allowField(true)::save($companyInfo, ['id' => $id ]);

如果把self::改成$this->也会报错。

嗯,不知道怎么写了,PHP萌新求指教~

慕神8447489
浏览 1653回答 3
3回答

Smart猫小萌

function savedata($data,$id) { return $this->allowField(['name','email'])->save($data,['id'=>$id]); } 调用 $res = $post->savedata(['name'=>'http://test','email'=>'testttttimg'],1); 执行sql语句 UPDATE `posts` SET `name` = 'http://test' , `email` = 'testttttimg' WHERE `id` = 1

开满天机

先看下TP5里面Model.php里面allowField的方法 /** * 设置允许写入的字段 * @access public * @param string|array $field 允许写入的字段 如果为true只允许写入数据表字段 * @return $this */ public function allowField($field) { if (is_string($field)) { $field = explode(',', $field); } $this->field = $field; return $this; }

牛魔王的故事

能看看你那个model的代码吗,感觉好像是继承没写好,你写对命名空间了吗?
打开App,查看更多内容
随时随地看视频慕课网APP