私は Laravel 4 を使用しています。特に、雄弁な ORM を使用する回答を探しています。
各行に割り当てられたclient_idとuser_idを格納するテーブル「tasks」があります。
client_idは「clients」テーブルのクライアントを参照し、 user_idは「users」テーブルのユーザーを参照します。
私がしたいこと:すべてのタスクを表示し、「clients」名と「users」first_nameを表示します
したがって、結果は私の(ブレード)ビューでは次のようになります。
@foreach($tasks as $task)
<tr>
<td>{{ $task->user->first_name }}</td>
<td>{{ $task->client->name }}</td>
<td>{{ $task->description }}</td>
</tr>
@endforeach
上記のビューは $task->client->name を完全に正常に吐き出しますが、残念ながら $task->user->first_name 行を追加すると「オブジェクト以外のプロパティを取得しようとしています」と表示されます
私のコントローラーは次のようになります。
$tasks = Task::with(array('user', 'client'))->get();
return View::make('index', compact('tasks'));
私が理解しているように、私のモデルも違いを生むので、私のモデルは次のようになります。
class Task extends Eloquent {
protected $guarded = array();
public static $rules = array();
public function client() {
return $this->belongsTo('Client');
}
public function user() {
return $this->belongsTo('User');
}
}
と:
class User extends Eloquent implements UserInterface, RemindableInterface {
public function task()
{
return $this->hasMany('Task');
}
}
と:
class Client extends Eloquent {
public function projects(){
return $this->hasMany('Project', 'client_id');
}
}
これを機能させる方法についてのアイデアはありますか?私はしばらく頭を悩ませてきました - また、私はデータベース関係のプロではないことに注意してください。