【发布时间】:2019-05-11 06:39:31
【问题描述】:
我的数据库中有一个“full_name”列,但我的数据库中没有“first_name”和“last_name”列。
这是我的表格:
<form method="POST" action="">
<input type="text" name="first_name">
<input type="text" name="last_name">
</form>
这是我的模型:
class User extends Model
{
protected $guarded = ['first_name', 'last_name'];
public function setFullNameAttribute()
{
$this->attributes['full_name'] = $this->attributes['first_name'].' '.$this->attributes['last_name'];
}
}
这是我的控制器类中的代码
public function store(StoreUser $request)
{
$validated = $request->validated();
$user = Auth::user();
$user->update($validated);
}
我提交表单后,出现错误:
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'first_name' in 'field list'
我知道这是什么原因,是因为$guarded = ['first_name', 'last_name']
但是如果我没有看守那些字段,就会报错:
"Undefined index: first_name"
我知道这是什么原因,因为我的数据库中没有“first_name”列。
所以我卡住了,不知道如何将“full_name”更新到数据库中, 并防止分配“first_name”和“last_name”字段。
PS,我不使用$user->save()是因为现实世界中有大量任务需要更新。
【问题讨论】: