2014-09-28 20 views
7

Tôi đang sử dụng laravel v 4.2 .. tôi muốn tạo bản ghi cập nhật. bạn có thể giúp tôi .. có gì sai với mã này ... đây là mã của tôi:

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

Lỗi là:

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

nhờ sự quan tâm của bạn và giúp đỡ của bạn ..

Trả lời

0

Hãy thử điều này trong phương pháp điều khiển của bạn:

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

Và chỉ cần vượt qua nó để xem.

19

Điều bạn đang cố gắng đạt được là mối quan hệ trên một tập hợp các mô hình, mối quan hệ tồn tại trên đối tượng trong bộ sưu tập đó. Bạn có thể sử dụng đầu tiên() để trở về đầu tiên hoặc bạn cần phải sử dụng vòng lặp cho mỗi người có được vật phẩm của mình

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

trở lại một colllection của đối tượng nơi id bằng với $ id. trong trường hợp này sẽ trả về một bộ sưu tập của 1 phần tử và không phải là đối tượng chính nó tất nhiên nếu id là duy nhất, vì vậy khi bạn làm:

$matakuliahs->id 

bạn đang triying để acess các thuộc tính id của $ matakuliahs đối tượng nhưng $ matakuliahs trong trường hợp này không phải là đối tượng là tập hợp. để giải quyết vấn đề này bạn có thể làm:
1.

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

hoặc

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

để có được những đối tượng và acess các thuộc tính.

2. trên bạn xem:

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

hy vọng sự giúp đỡ này. cảm ơn

Các vấn đề liên quan