2014-09-28 8 views
7

Ich benutze Laravel v 4.2 .. Ich möchte Update-Datensatz erstellen. können Sie mir helfen .. Was ist mit diesem Code falsch ... dies ist mein Code:

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

Fehler ist:

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

Dank für Ihre Aufmerksamkeit und Ihre Hilfe ..

Antwort

0

Versuchen Sie dies in Ihrer Controller-Methode:

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

Und es nur zur Ansicht übergeben.

19

Was Sie versuchen, ist eine Beziehung in einer Sammlung von Modellen, die Beziehung besteht auf dem Objekt in dieser Sammlung. Sie können zunächst() verwenden, um die erste oder Sie müssen zurückkehren für jeden verwenden Schleife erhalten ihre Produkte

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

Rückkehr ein colllection von Objekt, in dem die ID zu $ ​​id gleich ist. in diesem Fall wird eine Sammlung von 1 Element zurückgeben und nicht das Objekt selbst natürlich, wenn die ID eindeutig ist, also, wenn Sie tun:

$matakuliahs->id 

Sie die ID-Eigenschaften des $ matakuliahs Objekt Acess sind triying aber die $ matakuliahs ist in diesem Fall kein Objekt ist eine Sammlung. , dieses Problem zu lösen, die Sie tun können:
1.

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

oder

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

das Objekt zu erhalten und die Eigenschaften Acess.

2. auf Sie sehen:

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

hoffen, dass diese Hilfe. danke

Verwandte Themen