使用gridview进行Yii2查询搜索

时间:2017-03-03 14:08:00

标签: yii2 yii2-advanced-app

我想进行查询搜索: select * from task t,activity a,project p where t.activityid = a.activityid and a.projectid = p.projectid and p.userid = 25

我理解我的任务,与活动有关,所以我怎么知道创建的项目,任务与项目有关。

在我的任务视图中 -

$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,
]);

1 个答案:

答案 0 :(得分:0)

要实现这一点,您应该从主模型创建search model并从主模型类扩展搜索模型类。

之后,您应该使用参数创建一个名为search的公共方法。然后在不执行查询的情况下执行过滤并在方法中查询数据。完全创建查询后,只需将其传递给执行它的dataprovider whitout,您就可以对该数据执行任何操作,并处理控制器中的其他内容并进行查看。

以下两个网址可以帮助您完成教程:

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

Displaying, Sorting and Filtering Model Relations on a GridView