私は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()}}
エラーは:
未定義のプロパティ:Illuminate\Database\Eloquent\Collection ::$ id (表示:C:\ xampp\htdocs\Laravel 4\projectLaravel\app\views\matakuliahs\edit.blade.php)
あなたの注意と助けに感謝します。
取得しようとしているのは、モデルのコレクションの関係です。この関係は、そのコレクションのオブジェクトに存在します。 first()を使用して最初の1つを返すか、アイテムを取得するたびにループを使用する必要があります
$matakuliahs = Matakuliah::where('id','=',$id)->get()->first();
$matakuliahs = Matakuliah::where('id','=',$id)->get();
idが$ idと等しいオブジェクトのコレクションを返します。この場合、もちろん、IDが一意の場合、オブジェクト自体ではなく、1つの要素のコレクションを返します。そのため、次のようにします。
$matakuliahs->id
$ matakuliahsオブジェクトのidプロパティにアクセスしようとしていますが、この場合$ matakuliahsはオブジェクトではなく、コレクションです。この問題を解決するには、次のようにします。
1。
$matakuliahs = Matakuliah::where('id','=',$id)->get()->first();
または
$matakuliahs = Matakuliah::where('id','=',$id)->first();
オブジェクトを取得し、プロパティにアクセスします。
2。あなたが見る:
@foreach( $matakuliahs as $matakuliah)
//your code here
@endforeach
この助けを願っています。ありがとう
方法
MyModel::find($id);
またはEloquentとの関係が機能しないLaravel 4.2次の解決策
$myModel= new MyModel;
$myModel->setConnection('mysql2');
$myModel= $myModel->where('id', $id)->first();
あなたのコントローラーメソッドでこれを試してください:
$matakuliahs = Matakuliah::find($id);
そして、それをビューに渡します。