私は以下のような3つのテーブルを持っています。Laravelはeloquant関係の1つ以上のパラメータをチェックします
卓上AccountServiceの
id | service_id| account_id|
----------------------------
1 | 1 | 8181 |
2 | 2 | 8181 |
3 | 3 | 8181 |
4 | 5 | 8181 |
表: - サービス
id | Name |
------------
1 | A |
2 | B |
3 | C |
4 | D |
表: - CompletedService
id | service_id | account_id
------------------------------
1 | 1 | 8181
2 | 1 | 8182
3 | 1 | 8181
4 | 2 | 8181
今すぐMY関係クエリは以下の通りです。
$acc = AccountService::with(['service' => function($q) {
}])->with(['completedServiceRest' => function($q) {
}])->where('account_id', $account_id)->get();
account_idとservice_idの両方に基づいて関係部分のレコードを取得するにはどうすればよいですか。 現在、レコードはcompletedSericeRestの関係で表示され、account_idのすべてのレコードがAccountServiceテーブルと一致します。
この関係が発生すると、account_idだけでなく、完了したサービスからservice_idとaccount_idの両方をチェックします。
モデル内の関係は以下のとおりです。
public function completedServiceRest() {
return $this->hasMany('App\CompletedService', 'account_id', 'account_id');
}
は現在ACCOUNT_IDのすべてのレコードがのみACCOUNT_IDに影響を与えるパラメータのservice_idとACCOUNT_IDの両方に基づいていないマッチします。
ありがとうございました。
ありません私は私のテーブル構造を変更することはできませんが彼女のフィールドは0,1で完了しただけではありません。だからこれは動作しません。 TX –