2014-09-28 90 views
7

我正在使用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() }} 

錯誤是:

 
Undefined property: Illuminate\Database\Eloquent\Collection::$id (View: C:\xampp\htdocs\Laravel 4\projectLaravel\app\views\matakuliahs\edit.blade.php) 

感謝您的關注和您的幫助..

回答

0

試試這個在您的控制器方法:

$matakuliahs = Matakuliah::find($id); 

而只是把它傳遞給視圖。

19

你試圖得到的是一個關於模型集合的關係,關係存在於該集合中的對象上。你可以先用()返回第一個或你需要使用循環爲每一個得到他們的項目

$matakuliahs = Matakuliah::where('id','=',$id)->get()->first(); 
0
$matakuliahs = Matakuliah::where('id','=',$id)->get(); 

返回對象的colllection其中ID等於$ ID。在這種情況下將返回1元的集合,當然不是對象本身如果ID是唯一的,所以當你:

$matakuliahs->id 

你triying接取的$ matakuliahs對象的ID屬性但$ matakuliahs在這種情況下不是一個對象是一個集合。 解決這個問題,你可以這樣做:
1.

$matakuliahs = Matakuliah::where('id','=',$id)->get()->firts(); 

$matakuliahs = Matakuliah::where('id','=',$id)->first(); 

獲取對象和接取的屬性。

2.查看:

@foreach($matakuliahs as $matakuliah) 
//your code here 
@endforeach 

希望這有助於。謝謝

相關問題