Laravel填充未设置组件属性
我遇到了 Laravel 的一个问题,希望有人能帮忙解释一下。填充命令不是设置模型的属性,而是只能用->save()函数将它们保存到数据库中。有没有办法fill从数组中实际设置模型的属性。
下面的问题示例。
$comment = new comment();
$comment->fill(['name' => 'Bob']);
echo($comment->name); // Gives null/error.
$comment = new comment();
$comment->name = 'Bob';
echo($comment->name); // Gives Bob.
回答
原因是名称归档在评论模型中不可填写。要解决此问题,您必须在评论模型中为该字段添加可填写
protected $fillable = [
'name',
];
如果您尝试访问不可填写的字段,则它将返回 null。
如果不想将其添加到可填充中,则可以使用 forceFill.
forceFill:使用具有力质量分配的属性数组填充模型。
$comment = new comment();
$comment->forceFill(['name' => 'Bob']);
echo($comment->name);