2017-03-03 6 views
0

select * from task t、activity a、project p where t.activityid = a.activityidおよびa.projectid = p.projectidおよびp。ユーザーID = 25グリッドビューによるYii2クエリの検索

私は自分のタスクを理解していますが、アクティビティに関連しています。どのようにプロジェクトが作成されているかを知ることができます。タスクはプロジェクトに関連しています。あなたがメインモデルからsearch modelを作成し、メインモデルクラスからの検索モデルクラスを拡張する必要があり、これを達成するために

$query1s = new Query; 
$query1s->select('*') 
    ->from('task','activity','project') 
    ->where(['task.activityid' => 'activity.activityid']) 
    ->andWhere(['activity.projectid' => 'project.projectid']) 
    ->andWhere(['project.userid' => $userID]); 

$command = $query1s->createCommand(); 
$datas = $command->queryAll(); 

$dataProvider = new ActiveDataProvider([ 
    'query' => $query1s, 
]); 
+0

:ここ

はあなたを助けるためにチュートリアルを完了するために2つのURLです。 –

+0

私の仕事のビューで - $ query1s =新しいクエリ; $ query1s-> select( '*') - > from( 'task'、 'activity'、 'project') - >ここで(['task.activityid =>' activity.activityid ']) - > andWhere(['activity.projectid' => 'project.projectid']) - > andWhere(['project.userid' => $ userID]); $ command = $ query1s-> createCommand(); $ datas = $ command-> queryAll(); $ dataProvider = new ActiveDataProvider([ 'query' => $ query1s、 ]); – james

答えて

0

[表示] - 私の仕事で

その後、パラメータ付きのsearchというパブリックメソッドを作成する必要があります。次に、クエリを実行せずに、フィルタリングとメソッド内のデータのクエリを実行します。クエリが完全に作成されたら、それを実行しているdataproviderに渡すだけで、そのデータで何をしてもかまいませんし、コントローラやビューで他のことを処理できます。あなたが何をしたか、あなたのコードを表示

Filter & Sort by calculated/related fields in GridView Yii 2.0

Displaying, Sorting and Filtering Model Relations on a GridView

+0

私は問題を解決しました。私は自分のアクティビティテーブルを使用して他の2つのテーブルに参加して結果を得ることができたことを忘れてしまいました。あなたにも結果を出力することができました – james

関連する問題