Yii2 数据搜索类 PostSearch

数据搜索类 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

原文地址:https://www.cnblogs.com/chrdai/p/7966793.html