2017-12-12 16 views
0

にオーダーが関連付けられているordersテーブルからすべてのレコードを取得しようとしています。 OrdersSupervisorsは、belongsToManyの関係に関連付けられ、ピボットテーブルを持っています。クエリ制約付きのリレーションシップからレコードを取得します

だから私のコードは次のようなものになります。

[2017-12-12 14:25:27] local.ERROR: Undefined variable: supervisor 

{"exception":"[object] (ErrorException(code: 0): Undefined variable: supervisor 

ない:

$supervisor = User::where('phone_number', $request->msisdn)->first(); 
      $orders = Order::with(['supervisors' => function ($query) { 
       $query->where('supervisor_id', $supervisor->id); 
      }])->get(); 

を私は、通知に渡すのではなく、取得しています注文のコレクションを取得するために期待してい私が間違っていることを確かめてください。

+0

$スーパーバイザをブレードに渡しているのではないことを示していますか? – Option

+0

ねえ、ブレード変数を扱っていません。以下の答えは質問に正しく答えています。しかし、ありがとう:) – MoreCoffeePls

答えて

3

あなたは、私がこれを使用し、それが働いた、関数に似た何かをグーグルで人のために

$orders = Order::with(['supervisors' => function ($query) use($supervisor) { 
       $query->where('supervisor_id', $supervisor->id); 
      }])->get(); 
+0

ねえ、ありがとう、これは働いた!関連する注文表の何かをチェックする制約を追加する方法はありますか?だから本質的にスーパーバイザーに属するすべての注文を得るために、注文にはXステータスがありますか? – MoreCoffeePls

+0

これは次のような意味ですか?$ orders = Order :: where( 'status'、 '='、 'X') - >(['supervisors' => function($ query){ $ query-> where ( 'supervisor_id'、$ supervisor-> id); }])> get(); –

+0

何かのようなものですが、保留中のすべての注文を把握し、ピボットテーブルのsupervisor_idについて気にしないようです。だから、私が〜3列しか期待していないときは、私は約20になっています。 – MoreCoffeePls

0

を$監督を渡すために使用を使用する必要があります。

$supervisor = User::where('phone_number', $request->msisdn)->first(); 
      $orders = Order::whereHas('supervisors', function ($query) use($supervisor) { 
       $query->where('supervisor_id', $supervisor->id); 
      })->where('status', '=', 'pending')->get(); 

ためp.wrightのビッグ感謝手伝い!

関連する問題