使用 gridview 进行 Yii2 查询搜索
Yii2 query search with gridview
我想进行如下查询搜索:
select * 来自任务 t,activity a,项目 p 其中 t.activityid = a.activityid and a.projectid = p.projectid and p.userid = 25
我确实了解我的任务,与activity相关,那么我怎么知道创建的项目,任务与项目相关。
在我的任务视图中-
$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,
]);
为此,您应该从主模型创建一个 search model
并从主模型 class 扩展搜索模型 class。
之后,您应该创建一个名为 search
的 public 方法,并带有参数。然后,您在不执行查询的情况下在您的方法中进行过滤和查询数据。完全创建查询后,只需将其传递给 dataprovider
whitout 执行它,您就可以对该数据做任何您需要做的事情,并在您的控制器和视图中处理其他事情。
这里有两个 URL 可以帮助你完成教程:
Filter & Sort by calculated/related fields in GridView Yii 2.0
Displaying, Sorting and Filtering Model Relations on a GridView
我想进行如下查询搜索: select * 来自任务 t,activity a,项目 p 其中 t.activityid = a.activityid and a.projectid = p.projectid and p.userid = 25
我确实了解我的任务,与activity相关,那么我怎么知道创建的项目,任务与项目相关。
在我的任务视图中-
$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,
]);
为此,您应该从主模型创建一个 search model
并从主模型 class 扩展搜索模型 class。
之后,您应该创建一个名为 search
的 public 方法,并带有参数。然后,您在不执行查询的情况下在您的方法中进行过滤和查询数据。完全创建查询后,只需将其传递给 dataprovider
whitout 执行它,您就可以对该数据做任何您需要做的事情,并在您的控制器和视图中处理其他事情。
这里有两个 URL 可以帮助你完成教程:
Filter & Sort by calculated/related fields in GridView Yii 2.0
Displaying, Sorting and Filtering Model Relations on a GridView