2014-09-28 12 views
7

Używam laravel v 4.2 .. Chcę utworzyć rekord aktualizacji. możesz mi pomóc .. co jest nie tak z tym kodem ... to mój kod:

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() }} 

Błąd:

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

dzięki za uwagi i waszej pomocy ..

Odpowiedz

0

Spróbuj tego w metodzie kontrolera:

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

I po prostu przekazać je do widoku.

19

To, co próbujesz uzyskać, to relacja w kolekcji modeli, związek istnieje na obiekcie w tej kolekcji. Można użyć najpierw(), aby powrócić do pierwszego lub trzeba użyć pętli dla każdego z nich uzyskać ich pozycji

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

powrotnym colllection obiektu gdzie id jest równe $ id. w tym przypadku zwróci zbiór 1 elementu, a nie sam obiekt oczywiście jeśli identyfikator jest unikalny, więc kiedy to zrobić:

$matakuliahs->id 

jesteś triying acess właściwości ID $ matakuliahs obiektu ale w tym przypadku nie jest obiektem, jest zbiorem. rozwiązać ten problem, można zrobić:
1.

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

lub

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

aby uzyskać obiekt i acess właściwości.

2. Ci zobaczyć:

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

nadzieję, że to pomaga. dzięki

Powiązane problemy