2017-12-21 8 views
0

私は3つのテーブル、決済テーブルhasMany add_membersテーブルと暗号テーブルhasMany add_membersテーブルを持っています。決済ではと暗号モデル私は機能を置く:私はadd_membersテーブルに私が持っているどのように多くの行を数えるが、集落テーブルのreon_idを必要とするときLaravel:2つのモデルを数えて

public function members() 
    { 
     return $this->hasMany('App\AddMember'); 
    } 

は今、私はこのようでした:

$first_count = Settlement::where('town_id', Auth::user()->town_id) 
    ->with('members') 
    ->where('reon_id', '1') 
    ->count(); 

とそれは働いていますが、私は決済テーブルのreon_id == 1でadd_membersの行を数える2番目のカウントを必要としますが、暗号テーブルではcipher == 0のところにもう1つの関係があります。私はAddMemberモデルを通じてbelongsToの関係で行う場合、私はエラーを取得しています:

(2/2)QueryException SQLSTATE [42S22]:見つからないカラム:1054不明な列 'where句'

$second_count = Settlement::where('town_id', Auth::user()->town_id) 
     ->with('members') 
     ->where('reon_id', '1') 
     ->Cipher::with('members') 
     ->where('cipher', '0') 
     ->count(); 
に 'reon_id'

...私は、この第2のが間違っていることを知っているが、私は和解モデルと暗号モデルで暗号== 0でreon_id == 1で取得するホット分からない

答えて

0

Laravel関係テーブルクエリ

$first_count = Settlement::where('town_id', Auth::user()->town_id) 
    ->with(['members', function ($q) { 
     $q->where('reon_id', 1); 
}])->get(); 

または

$first_count = Settlement::with('members')->where('town_id', Auth::user()->town_id) 
    ->whereHas('members', function ($q) { 
     $q->where('reon_id', 1); 
})->get(); 
+0

App\Book::with('author:id,name')->get();

よりいいえ、私はそれを必要としません。多分私は最初の場所ではっきりしていなかったかもしれないので、私は質問を編集しました。私は$ second_count変数が必要です。 –

0

$users = App\User::with(['posts' => function ($query) { $query->where('title', 'like', '%first%'); }])->get();

あなたはこの機能を試してみましたか?どの列がどの表にあるのかはよく分かりますか?

やDATなどの列に関する追加情報:laravelドキュメント

+0

私は最初の場所ではっきりしなかったかもしれないので、私は質問を編集しました。私は$ second_count変数が必要です。 –

関連する問題