Я работаю над созданием приложения CRUD в Laravel, я использую столбцы default_at и updated_at по умолчанию, которые, похоже, заполняются автоматически при вставке или обновлении базы данных. При переходе от использования идентификатора отредактированной записи к извлечению фактической записи модели в качестве параметра в моем методе обновления я наткнулся на исключение "InvalidArgumentException
Не удалось найти четырехзначный год. Данные отсутствуют "при вызове $ installer-> update (['my field 1', ...]);
Я пытался dd'ing мой запрос и объект $ installer, который извлекается, и все выглядит правильно, но обновление таким образом, кажется, прерывает обновление в поле updated_at. Ниже приведены соответствующие фрагменты:
Класс моей модели:
class Installer extends Model
{
protected $guarded = [];
}
Мой метод обновления:
public function update(Installer $installer) {
request()->validate([
'FirstName' => 'required',
'LastName' => 'required',
'Position' => 'required',
'Status' => 'required',
'EmpId' => 'required'
]);
$installer->update(['FirstName', 'LastName', 'Position', 'Status', 'EmpId']);
return redirect('/installers');
}
Соответствующая часть моей формы редактирования:
<form method="POST" action="/installers/{{ $installer->id }}" style="margin-bottom: 1em">
@method('PATCH')
@csrf
<div class="field">
<label class="label" for="FirstName">First Name</label>
<div class="control">
<input type="text" class="input" name="FirstName" placeholder="First Name" value="{{ $installer->FirstName }}" required>
</div>
</div>
<div class="field">
<label class="label" for="LastName">Last Name</label>
<div class="control">
<input type="text" class="input" name="LastName" placeholder="Last Name" value="{{ $installer->LastName }}" required>
</div>
</div>
<div class="field">
<label class="label" for=Position">Position</label>
<div class="control">
<input type="text" class="input" name="Position" placeholder="Position" value="{{ $installer->Position }}" required>
</div>
</div>
<div class="field">
<label class="label" for="Status">Status</label>
<div class="control">
<input type="text" class="input" name="Status" placeholder="Status" value="{{ $installer->Status }}" required>
</div>
</div>
<div class="field">
<label class="label" for="EmpId">Employee ID</label>
<div class="control">
<input type="text" class="input" name="EmpId" placeholder="Employee ID" value="{{ $installer->EmpId }}" required>
</div>
</div>
<div class="field">
<div class="control">
<button type="submit" class="button is-link">Update Installer</button>
</div>
</div>
</form>
Как мне изменить это, чтобы eloquent продолжал автоматически обновлять поле updated_at?