Я работаю над уведомлениями У меня есть 2 таблицы: один - notify
, а другой - notify_status
. Через уведомление я показываю данные, такие как title
и description
и в notify_status
У меня есть поле read_status
, которое по умолчанию 0
. После того, как я покажу его, я хочу изменить его на 1
. У меня также есть notify_id
в качестве внешнего ключа. Это мой show
метод:Невозможно создать данные с помощью метода show в Laravel 5.3
public function show($id)
{
$notify = Notify::find($id);
$notify_status = NotifyStatus::where('notify_id', $id)->get();
$user_data['read_status'] = 1;
$user = NotifyStatus::create($user_data);
return view('notify.desr')->with(compact('notify'));
}
Но это не создает против notify_id
. Что мне делать?
Вы не хотите создавать, вы хотите обновить его! '$ notify_status-> update (['read_status' => 1]);' - В противном случае это не имеет смысла. – Quasdunk
он говорит, что метод обновления не существует –
Да, правильно - это также должно быть 'NotifyStatus :: где ('notify_id', $ id) -> first();', потому что 'get()' возвращает Collection, а не модель , Кроме того, если вы связали свои модели с отношениями, весь метод должен быть одной строкой кода: '$ notify = Notify :: find ($ id) -> notify_status-> update (['read_status' => 1]); '(Я предполагаю, что у вас есть соотношение 1: 1 между Notify и NotifyStatus, а отношение к Notify-модели называется« notify_status »). – Quasdunk