raijin

raijin

不要谈什么梦想,要得就是目前的苟且,没有诗和远方,没有规划和向往

  • 财富值1880
  • 威望值0
  • 总积分2630

个人信息

  • 提出了问题
    博客的评论回复功能
  • 赞了评论

    可不可以弄个大型网站的 从开始到做完的视频教程,我想看看大神是怎么做的

  • 赞了教程
    Yii2.0 实现三级联动
  • 又是一篇可以写进教科书的文章

  • 提出了问题
    想问一下本站用的是哪种富文本编辑器
  • 2017-01-06 已签到
    连续签到1天,获得了5个金钱
  • 回复了 的回答

    如果不想更改dataProvider里边的查询条件,也可以使用匿名函数实现.

    [
     'label'=>'col_d',
      'value'=>function($dataProvider){
          if($dataProvider->col_d = 'xxx'){
             return $dataProvider->col_d;
          }
      }
    ]
    

    感谢提醒,我实验了一下,这种方法也行

  • 2016-09-16 已签到
    连续签到2天,获得了10个金钱
  • 回复了 的回答

    那就修改dataProvider数据,而dataProvider应该是通过searchModel生成的,那么去修改searchModel中的过滤条件

     $query->andFilterWhere([
        $this->col_d => xxx(固定值),
        ...
    
    ]);
    
    

    感谢这位同学提醒,我发现在searchmodel里有一个变量负责控制过滤条件,修改之后的代码如下

    public function search($params)
    {
        $query = Body::find();
    
        // add conditions that should always apply here
      
        $dataProvider = new ActiveDataProvider([
            'query' => $query->where(['col_d'=>xxx]),
        ]);
        也就是只要在query后面加一个where条件就行了。
    

    如果搜索条件是一个变量,需要在function search()里面另外传递一个参数,然后将传递进来的参数设置为¥query的条件。

  • 提出了问题
    dataprovider数据筛选问题
总监 等级规则
2630/5000
资料完整度
70/100
用户活跃度
0/100

Ta的关注

3

Ta的粉丝

3

Ta的访客

27