当前位置:  开发笔记 > 编程语言 > 正文

模型中的Laravel 5.1 bool属性在模型类中加入时返回空数组

如何解决《模型中的Laravel5.1bool属性在模型类中加入时返回空数组》经验,为你挑选了1个好方法。

我有一个带有布尔字段的雄辩模型.数据库中的列是a tinyint(1),值正确存储为1.如果我在类之外的任何给定上下文中访问此值,我将获得正确的值:

$myModel = MyModel::first();
var_dump($myModel->visible); //outputs 1

当我在模型类中的方法内访问它时虽然....

class MyModel {
    public function isVisible(){
        var_dump($this->visible); 
        // return $this->visible && $this->approved; // another true value
    }
}

//on tinker
>> $myModel->isVisible();
array(0) {
}
>>

我知道这听起来很疯狂,但我已经在这里呆了两个小时而且无法使它发挥作用.我错过了什么?



1> Thomas Kim..:

Laravel的Model类已经有了一个protected $visible属性.你可能已经猜到了,这是一个数组.从类中访问时,它可以访问此protected属性,因此它将返回该数组.在类外部访问时,它使用PHP的魔术__get方法,因此它返回列的值.

如果可能,您可以重命名列以防止任何潜在的未来冲突.否则,您可以isVisible()使用该getAttribute方法更改方法以访问模型的列值,而不是像这样访问模型的属性:

public function isVisible(){
    return $this->getAttribute('visible') && $this->approved;
}

推荐阅读
罗文彬2502852027
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有