Laravel使用数据库列通过特征设置$ fillable

时间:2018-11-22 05:15:12

标签: php laravel traits

我正在尝试创建一个特征,该特征将基于模型表模式自动设置$fillable

trait DynamicFillable
{
    public static function bootDynamicFillableTrait()
    {
        static::retrieved(function (Model $model) {
            $model->fillable(Schema::getColumnListing($model->getTable()));
        });
    }
}

我也尝试过:

static::retrieved(function (Model $model) {
    $model->fillable = Schema::getColumnListing($model->getTable());
});

由于$fillable受保护,因此也不起作用。

这可能吗?如果可以,怎么办?

2 个答案:

答案 0 :(得分:1)

我只是想知道,如果您打算使表上的所有字段都可填充,为什么会在为其创建代码时遇到麻烦?

你能不能放:

protected $guarded = [];

在您的模型上?

只是一个想法。

答案 1 :(得分:0)

我想我明白了

trait DynamicFillable
{
    public function getFillable()
    {
        return Schema::getColumnListing($this->getTable());
    }
}