@procode
Разработчик

Почему на одних и тех же входящих данных $model->save() не работает, а Model::create() — работает?

Здравствуйте.

Почему вот так работает как надо:

public function store(Ticket $ticket, Request $request)
		{						
			//$ticket->save($request->all());
			
			Ticket::create($request->all());
			
			return redirect()->route('tickets.main')
			->with('success','Ваш запрос в службу поддержки зарегистрирован!');
		}


а если вместо create использовать save, то запись в БД создает, но поля не заполняет?

Это какой-то баг Laravel или это какие-то нюансы? :)

Вот кусок формы:

<form class="form" action="{{ route('tickets.store') }}" method="POST">
	@csrf
	@method('POST')


В чем тут соль?

Спасибо.
  • Вопрос задан
  • 88 просмотров
Решения вопроса 2
arutyunov
@arutyunov
Mooza.ru — Делаем сайты
В модели $fillable настроили? А ещё метод save() не может принимать вот так параметры, как вы делаете. Надо вызвать $model->fill($data)->save();.

https://laravel.com/docs/5.7/eloquent#inserting-an...
Ответ написан
v_decadence
@v_decadence
Потому что save только сохраняет модель с уже установленными параметрами, перед ним нужно использовать fill, например.
https://github.com/illuminate/database/blob/master...
Единственный параметр это массив с настройками сохранения, а не поля модели.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы