В моей базе данных есть столбец "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()
, потому что есть массовые назначения, которые необходимо обновить в реальном мире.