我正在尝试创建一个trait,它将根据模型表模式自动设置$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
受到保护。
这可能吗?如果可能,怎么可能?
3条答案
按热度按时间kulphzqa1#
我想我明白了:
9o685dep2#
我只是想知道,如果你计划让你表中的所有字段都是可填充的,为什么在创建代码时会遇到问题呢?
你能不能写上:
在你的模型上?
只是一个想法。
euoag5mw3#
我很欣赏这是一个老问题,但对于那些谷歌这个问题在未来;
正如@stardust4891所指出的,你可以覆盖trait中的
getFillable()
函数。然而,这可能会使你的trait不能很好地与其他trait或你所做的自定义匹配。相反,你可以使用trait intialization。在你的特质中,你可以做以下事情: