Php 在laravel中全局隐藏来自数组或JSON转换的属性?

Php 在laravel中全局隐藏来自数组或JSON转换的属性?,php,laravel,laravel-5,Php,Laravel,Laravel 5,有时,您可能希望限制模型数组或JSON表单中包含的属性,例如密码。为此,请将隐藏特性定义添加到模型中: class User extends Model { protected $hidden = ['password']; } 这是特定于模型的 有什么方法可以全局隐藏吗 即,我想从所有模型jsonresult中隐藏删除的和创建的 最简单的方法是创建基础模型。像这样: class BaseModel extends Model { protected $hidden = [

有时,您可能希望限制模型数组或JSON表单中包含的属性,例如密码。为此,请将隐藏特性定义添加到模型中:

class User extends Model {

    protected $hidden = ['password'];

}
这是特定于模型的

有什么方法可以全局隐藏吗


即,我想从所有模型
json
result中隐藏删除的和创建的

最简单的方法是创建基础模型。像这样:

class BaseModel extends Model {
    protected $hidden = ['deleted_at', 'created_by'];
}
然后,您的所有模型都从中扩展:

class User extends BaseModel {

}

请注意,通过这种方式,如果要为特定模型添加一些隐藏字段,还必须指定这两个全局隐藏属性:

class User extends BaseModel {
    protected $hidden = ['deleted_at', 'created_by', 'password'];
}
如果这让您感到困扰,您可以从构造函数中合并全局属性:

class BaseModel extends Model {
    private $globalHidden = ['deleted_at', 'created_by'];

    public function __construct(array $attributes = array()){
        $this->hidden = array_merge($this->globalHidden, $this->hidden);
        parent::__construct($attributes);
    }
}

谢谢很高兴再次见到你:)