为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
慕神8447489 2019-03-08 12:09:19
比如更新记录,官方文档是这样写的。 我现在想把该功能封装在一个继承了Model的类里面。 这样写会报错说没有相应的静态方法self::allowField(true)::save($companyInfo, ['id' => $id ]); 如果把self::改成$this->也会报错。 嗯,不知道怎么写了,PHP萌新求指教~
查看完整描述

3 回答

?
Smart猫小萌

TA贡献1911条经验 获得超7个赞

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
查看完整回答
反对 回复 2019-03-18
?
开满天机

TA贡献1786条经验 获得超13个赞

先看下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;
    }
查看完整回答
反对 回复 2019-03-18
?
牛魔王的故事

TA贡献1830条经验 获得超3个赞

能看看你那个model的代码吗,感觉好像是继承没写好,你写对命名空间了吗?

查看完整回答
反对 回复 2019-03-18
  • 3 回答
  • 0 关注
  • 1652 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信