Дополнительно
Свойство [id] не существует для данного экземпляра коллекции
Я пытаюсь создать страницу редактирования, и постоянно выскакивает эта ошибка
Упс, похоже, что-то пошло не так. Свойство [id] не существует для этого экземпляра коллекции.
Что я сделал на данный момент
Вот мой маршрут
Route::get('book/edit/{id}', 'BookController@edit')->name('admin.book.edit');
Route::PATCH('book/edit/{id}', 'BookController@update')->name('admin.book.edit');
Это мой контроллер
$books = $this->bookModel
->join('author', 'author.id', '=', 'book.author_id')
->where('book.id', '=', $id)
->select('book.*', 'author.name_1 as authorname1')
->get();
return view('backend.book.edit', compact('books', $books));
Наконец, файл представления имеет следующее в части формы
{{ Form::model($books, ['route' => ['admin.book.edit', $books->id], 'class' => 'form-horizontal', 'role' => 'form', 'method' => 'PATCH']) }}
<!--form content-->
{{ Form::close() }}
Любая помощь будет оценена по достоинству. Спасибо
7
3
Вы должны получить одну запись с помощью
first()
, а не коллекцию с помощьюget()
, т.е:Пожалуйста, замените
$books
на$book
в остальной части кода.Ошибка здесь:
Когда вы используете
get()
, вы получаете коллекцию, а$books
- это коллекция. В этом случае вам нужно выполнить итерацию над ней, чтобы получить ее свойства:Я думаю, что ваш код должен быть обновлен как:
Надеюсь, это сработает!