SQLSTATE[HY000]: General error: 1364 Field 'password' doesn't have a default value
Делаю на Laravel небольшой тестовый инет магаз. Пытался реализовать редактирование профиля пользователя. Вот столько там есть полей:
Schema::create('users', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->string('phone')->nullable();
$table->string('img')->nullable();
$table->string('email')->unique();
$table->timestamp('email_verified_at')->nullable();
$table->string('password');
$table->rememberToken();
$table->timestamps();
});
Но я пытаюсь изменить только 3 из них, а ругается, что у других нет дефолтного значения, а почему оно другие поля вообще трогает? Или это я что то не так делаю?
public function user_edit(Request $request, User $user){
$user->name = $request->name?$request->name:Auth::user()->name;
$user->email = $request->email?$request->email:Auth::user()->email;
$user->phone = $request->phone?$request->phone:(Auth::user()->phone?Auth::user()->phone:NULL);
$user->save();
return redirect()->back();
}
Ответы (1 шт):
Автор решения: Hi_TecH
→ Ссылка
Причина в том, что я для обновления полей использовал метод, который добавляет новую запись (если я правильно понял), а не обновляет текущую.
Я делал так:
$user->save();
А нужно так:
$user->update();