2017-09-19 4 views
2

私は2つのテーブルを持っています:ユーザーデータを含む "ユーザー"とユーザーの投稿を含む "投稿"。各ユーザーには多数の投稿を付けることができます。YIi2の関連テーブルのデータを持つ行のみを検索します

ユーザー

  • ID
  • FULL_NAME

投稿

  • post_no
  • POST_CONTENT
  • id_user
  • 私が何をしたいか

にはポストを持っていない非表示のユーザーであるので、私は私の検索モデルでテーブルを結合しようとした:

public function search($params) { 
    $query = Users::find->joinWith(['posts']); 
} 

が、残念ながら、ないポストを持つユーザーがまだ示され。 Yii2ため

+0

使用 'innerJoinWith()' –

+0

を@ Insane Skull私はあなたの提案を試み、それを以下のように変更しました:$ query = Users :: find-> innerJoinWIth(['posts]);しかし、まだ動作していません:( – Switch88

答えて

0

使用mysqlのWHERE NOT NULL構文

$query = Users::find->joinWith(['posts'])->where(['not', ['posts.post_no' => null]]); 

WHERE NOT NULL代替構文:

->where(['IS NOT', 'posts.post_no', null]); 

->where(['<>', 'posts.post_no', null]); 

->having(['posts.post_no' => 'NOT NULL']); 

ここに公式ドキュメントをチェックしてください: http://www.yiiframework.com/doc-2.0/yii-db-query.html#where()-detail

+0

それは私のために働く!ありがとう! – Switch88

+0

助けて嬉しい:-) – Imtiaz

関連する問題