2016-12-13 8 views
2

adminテーブルがあり、adminには多くのformがあります。各formは、ダッシュボードに表示されるadminに割り当てられます。Laravel - カスタムでない行を取得する.Many関係

formadminに割り当てられていない可能性があります。

すべて入手したいforms何か助けていただければ幸いです。ありがとうございました!

編集:説明したようAdminがカスタム関係を経由してformに関連しているHere

Admin.php

public function states(){ 
    return $this->belongsToMany('App\State'); 
} 

public function cities() 
{ 
    return $this->belongsToMany('App\City'); 
} 

//gets the forms in this admin's city or state 
//Let me know if there is a better way to do this, i feel like im overdoing stuff here 
public function forms() 
{ 
     //cities 
     $cities = $this->cities->pluck('name'); 
     //states 
     $states = $this->states->pluck('name'); 

     $users = User::whereIn('state',$states)>orWhereIn('city',$cities)->get()->pluck('id'); 

     $forms = Form::whereIn('user_id',$users); 

     return $forms; 

} 

を要約するためのIDという形式を取得したいですdoesntはanyに属しますadmin

+0

基本的に、その関係の逆数をフォームモデルで定義する必要があります。 –

+0

私はコードを追加しました。あなたは正しい方向に向けることができますか? –

答えて

0

あなたはdoesntHaveを探しているかもしれません。

$forms=Form::doesntHave('admin')->get(); 
+0

これを調べていただきありがとうございます。実際には、関係は多くの関係を持っている標準ではありません。状況をよりよく説明するために質問を編集しました。 –

0

あなたは単にその逆をしないのですか?

$forms = Form::whereNotIn('user_id', $users);