数据搜索类 PostSearch
/**
* @Purpose : 添加 authorName 属性,使属性和搜索表单相对应
* @return array
*/
public function attributes()
{
return array_merge(parent::attributes(),['authorName']);
}
/**
* @purpose : 重写验证规则,使其符合表单提交的验证需求
* @inheritdoc
*/
public function rules()
{
return [
[['id', 'status', 'create_time', 'update_time', 'author_id'], 'integer'],
[['title', 'content', 'tags','authorName'], 'safe'],
];
} public function search($params)
{
// 搜索的实现 : 是靠查询构建器程序化得构建查询,然后交给数据提供者,在后续阶段去执行查询
$query -> join('INNER JOIN','Adminuser','Post.author_id=Adminuser.id');
$query ->andFilterWhere(['like','Adminuser.nickname',$this->authorName]); // 排序的实现: 程序化得设置数据提供者 DataProvider 的 sort 配置来实现的
$dataProvider -> sort -> attributes['authorName'] =
[
'asc' => ['Adminuser.nickname' => SORT_ASC],
'desc'=> ['adminuser.nickname' => SORT_DESC],
];
return $dataProvider;
}
注:本文为作者(44106-kangaroo) 看完魏羲教你学Yii2.0 视频后所记,如有转载请注明出处:http://www.cnblogs.com/chrdai/p/7966793.html