2016-12-02 19 views
3

私はまだwhereHas()メソッドの周りを頭で囲んでいます。私の場合はこれです。私はクラスに属するすべてのユーザーlaravelデータベースからデータを引き出す

これは関係

クラスモデルを引き出したい

public function users() { 
    return $this->belongsToMany('App\User')->withTimestamps(); 
} 

Userモデル

public function classes() { 
    return $this->belongsToMany('App\Classes')->withTimestamps(); 
} 

コントローラ

$class_us = User::whereHas('classes', function ($query) { 
    $query->where('class',1); 
})->get(); 

私はdd($class_us)空のコレクションがあります。

この問題を解決するにはどうすればよいですか?

ありがとうございました。 whereHasで

+0

は、それは 'Users'ができbelongsToMany' Classes'が、同時に 'Classes' hasManyの' Users'ということではないです? –

答えて

0

は、ビルダーのインスタンスはそれほど関連するモデルから来ているクラウズ、

$class_us = User::whereHas('classes', function ($query) { 
      // here the builder belongs to Class model not User model 
      $query->where('id',1); // id because classes table has column as id 
     })->get(); 
+0

まだ空のコレクションを与えています – OunknownO

+0

users_classes中間テーブルにclass_id = 1の少なくとも1つのレコードがある場合、dbをチェックできますか? –

関連する問題