Я использую Laravel V 4.2 ..
Я хочу создать запись обновления.
Вы можете мне помочь .. что не так с этим кодом …
это мой код:
MatakuliahsController.php
редактирование публичной функции ($ id) { // $ matakuliahs = $ this-> matakuliahs-> find ($ id); $ matakuliahs = Matakuliah :: where ('id', '=', $ id) -> get (); если (is_null ($ matakuliahs)) { return Redirect :: route ('matakuliahs.index'); } return View :: make ('matakuliahs.edit', compact ('matakuliahs')); }
edit.blade.php
{{Form :: open (array ('autocomplete' => 'off', 'method' => 'PATCH', 'route' => array ('matakuliahs.update', $ Matakuliahs-> идентификатор)))}} ... {{Form :: close ()}}
Ошибка:
Неопределенное свойство: Illuminate \ Database \ Eloquent \ Collection ::$ ID (Просмотр: C: \ xampp \ htdocs \ Laravel 4 \ projectLaravel \ app \ views \ matakuliahs \ edit.blade.php)
спасибо за ваше внимание и вашу помощь ..
То, что вы пытаетесь получить, — это связь с коллекцией моделей, связь существует с объектом в этой коллекции. Вы можете использовать first (), чтобы вернуть первый, или вам нужно использовать цикл для каждого получить свои элементы
$matakuliahs = Matakuliah::where('id','=',$id)->get()->first();
$matakuliahs = Matakuliah::where('id','=',$id)->get();
вернуть коллекцию объекта, где id равен $ id. в этом случае вернет коллекцию из 1 элемента, а не сам объект, конечно, если идентификатор уникален, поэтому, когда вы делаете:
$matakuliahs->id
вы пытаетесь получить доступ к свойствам идентификатора $ matakuliahs объект но $ matakuliahs в этом случае объект не является коллекцией.
Для решения этой проблемы вы можете сделать:
1.
$matakuliahs = Matakuliah::where('id','=',$id)->get()->first();
или же
$matakuliahs = Matakuliah::where('id','=',$id)->first();
чтобы получить объект и получить доступ к свойствам.
2. на ваш взгляд:
@foreach( $matakuliahs as $matakuliah)
//your code here
@endforeach
надеюсь, это поможет. Спасибо
Попробуйте это в вашем методе контроллера:
$matakuliahs = Matakuliah::find($id);
И просто передать его на вид.