Saya mencoba membuat halaman edit dan kesalahan ini terus muncul
Whoops, sepertinya ada yang salah. Properti [id] tidak ada pada instance koleksi ini.
Apa yang telah saya lakukan sejauh ini;
Ini adalah Route
saya
Route::get('book/edit/{id}', 'BookController@edit')->name('admin.book.edit');
Route::PATCH('book/edit/{id}', 'BookController@update')->name('admin.book.edit');
Ini adalah pengendali saya
$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));
Akhirnya file tampilan memiliki bagian formulir berikut
{{ Form::model($books, ['route' => ['admin.book.edit', $books->id], 'class' => 'form-horizontal', 'role' => 'form', 'method' => 'PATCH']) }}
<!--form content-->
{{ Form::close() }}
Setiap bantuan akan dihargai. Terima kasih
Anda harus mengambil satu record dengan first()
bukan koleksi dengan get()
, yaitu:
$book = $this->bookModel
->join('author', 'author.id', '=', 'book.author_id')
->where('book.id', '=', $id)
->select('book.*', 'author.name_1 as authorname1')
->first();
Tolong ganti $buku
dengan $buku
di sisa kode juga.
Kesalahan ada di sini:
$books->id
Ketika anda menggunakan get()
anda mendapatkan sebuah koleksi dan $books
adalah sebuah koleksi. Dalam hal ini Anda perlu mengulanginya untuk mendapatkan propertinya:
@foreach ($books as $book)
{{ $book->id }}
@endforeach
Saya pikir kode Anda perlu diperbarui seperti:
$books = $this->bookModel
->join('author', 'author.id', '=', 'book.author_id')
->where('book.id', '=', $id)
->select('book.*', 'author.name_1 as authorname1')
->first();
return view('backend.book.edit', compact('books'));
Semoga ini bekerja untuk Anda!