我正在使用laravel v 4.2 ..我想创建更新记录 . 你可以帮助我..这段代码有什么问题......这是我的代码:
MatakuliahsController.php
public function edit($id)
{
//$matakuliahs = $this->matakuliahs->find($id);
$matakuliahs = Matakuliah::where('id','=',$id)->get();
if(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->id))) }}
...
{{ Form::close() }}
Error is :
Undefined property: Illuminate\Database\Eloquent\Collection::$id (View: C:\xampp\htdocs\Laravel 4\projectLaravel\app\views\matakuliahs\edit.blade.php)
感谢您的关注和帮助..
3 回答
你想要得到的是一组模型上的关系,该关系存在于该集合中的对象上 . 您可以使用first()返回第一个,或者您需要使用循环来获取每个项目
返回id等于$ id的对象的colllection . 在这种情况下,如果id是唯一的,那么将返回1个元素的集合而不是对象本身,所以当你这样做时:
你正在试图访问 $matakuliahs 对象的id属性,但在这种情况下 $matakuliahs 不是一个对象是一个集合 . 要解决这个问题你可以做到:
1 .
要么
获取对象并获取属性 .
2.在你看来:
希望这个帮助 . 谢谢
在控制器方法中尝试这个:
然后将它传递给视图 .