は以下の表を考えてみません:Laravel:belongsToMany()は多対多のテーブルのフィールド
user
id
name
client
id
name
user_client
user_id
client_id
rate
...
私は私のコントローラはuser
テーブル内のすべてのフィールドを取得したいと私はまた、一覧表示にしたいです彼らのクライアントはname
とrate
です。ユーザーとクライアントのモデル:
class User extends Eloquent {
public function clients()
{
return $this->belongsToMany('Client', 'user_client');
}
}
class Client extends Eloquent {
public function users()
{
return $this->belongsToMany('User', 'user_client');
}
}
user_client
のモデルはありません。それが正常に動作しながら
public function show($username) // foo.com/user/{$username}
{
$user = User::where('username', '=', $username)->firstOrFail();
$clients = User::find($user->id)->clients;
return View::make('users.show', compact('user', 'clients'));
}
の抽出物、のビューusers/show.blade.php
を見てみましょう:
<h1>{{$user->name}}</h1>
@foreach($clients as $client)
<p>{{$client->name}}, {{$client->rate}}</p>
@endforeach
$client->rate
は未定義です。クエリデバッガのチェックでは、belongsToManyはclient.*
のみを選択しますが、user_id
とclient_id
以外は選択しません。
User::find($user->id)->clients;
を変更してuser_client.*
を選択するにはどうすればよいですか?
編集:私はそれに着手していますが、改善のための提案も歓迎します。
うわー、特に熱心なロードです。どうすればよいのですか?私は 'public function newPivot(Model $ parent、array $ attributes、$ table、$ exists)をどのように使っていますか? ; \t} 'この場合は?私はEloquentを拡張するための 'BaseModel'を追加しましたが、私はこの概念を理解するのに問題があります。 – tiffanyhwang
フォーラムやIRCでこれを利用することをお勧めしますか?あなたが達成したいことは本当にわかりませんか? :) – Cristian
' - >ピボット - >'のチップをありがとう。 – Pathros