2016-07-25 13:59:44 2376次浏览 4条回答 0 悬赏 10 金钱
public  function  actionSel(){
       $title=\Yii::$app->request->post('title');
       $arr = Zk2::find()->where("title='$title'")->asArray()->one();
       $c_id=$arr['c_id'];
           $query = Zk2::find()->where("c_id='$c_id'");
           $countQuery = clone $query;
           $pages = new Pagination(['totalCount' => $countQuery->count()]);
           $pages->pageSize=2;
           $models = $query->offset($pages->offset)->limit($pages->limit)->asArray()->all();
      return $this->render('sel', ['models' => $models, 'pages' => $pages]);
}

然后点下一页报错?
Undefined index: title

  • 回答于 2016-07-25 14:30 举报
    把
    where("title='$title'")
    修改:
    where(['title'=>$title])
    
    1 条回复
    回复于 2016-07-25 15:14 回复

    大哥 是不报哪个错了 但是点下一页!就没有数据了!

  • 回答于 2016-07-25 15:23 举报

    当你第一次访问该页面时,你的title条件是从某处post过来的,此时存在post的title。而当你点击下一页的时候,并没有进行你预想的post 一个 title 的请求,甚至你的title的条件都无法保留,毕竟分页物件是基于get去请求的。而在你title的条件没保留的情况下你使用了Yii::$app->request->post()去接受这个并不存在的变量也不会报错。因为request组件的post()会判断是否当前存在这个变量。如果不存在便会返回null。试想一下。当你查询出的数据的title字段的值是null的时候去以数组格式输出这个title下标。便出现了undefined index title。

    你需要做的是,把你的post 一个title改成 get title。而这次的title条件会在分页物件的一次次的分页get请求中保留下来。

    祝你好运。

    1 条回复
    回复于 2016-07-26 21:35 回复

    学习了!!!

  • 回答于 2016-07-25 15:36 举报

    建议以后通过在models里面建立Zk2Search.php来方便实现分页与查询。

  • 回答于 2016-07-26 09:18 举报

    使用分页时,Get请求的参数会在分页时自动保留,你Post过来的title自然在下一页的时候就没有了~所以最简单的办法就是把你post查询改成get~

您需要登录后才可以回答。登录 | 立即注册
37737
等待激活

37737

注册时间:2016-10-31
最后登录:1970-01-01
在线时长:0小时0分
  • 粉丝0
  • 金钱5
  • 威望0
  • 积分5

热门问题