pinsn 2012-05-22 14:30:38 7471次浏览 21条回复 1 0 0

控制器中的admin方法,怎么用条件过滤

  • 回复于 2012-05-22 15:33 举报

    什么意思?具体点

  • 回复于 2012-05-22 15:42 举报
    public function actionAdmin($id)
    {
        $model=new test();
        $model->unsetAttributes();  // clear any default values
        if(isset($_GET['test']))
            $model->attributes=$_GET['test'];
    			
        $this->render('admin',array(
            'model'=>$model,
        ));
    }
    

    这样是全部输出我,我想传一个ID过去,只列表pid为ID的列

  • 回复于 2012-05-22 16:36 举报

    怎么都没人啊,哎

  • 回复于 2012-05-22 17:22 举报
    public function actionAdmin($id)
    {
    
        $model=new test();
        $model->unsetAttributes();  // clear any default values
        $model->pid=$id;
        if(isset($_GET['test']))
            $model->attributes=$_GET['test'];           
        $this->render('admin',array(
            'model'=>$model,
        ));
    }
    
  • 回复于 2012-05-22 17:28 举报

    用了你的方法,还是显示全部信息

  • 回复于 2012-05-22 17:38 举报

    $model->pid=$id;里面的pid是你的字段,$id是你通过get传递过来的,比如说是$_GET['id']

  • 回复于 2012-05-22 17:40 举报

    pid我改成我的字段了,

    public function actionAdmin($id)
    {
         echo $id;
        ……
    }
    

    上面这样能打印$id的值

  • 回复于 2012-05-22 17:40 举报

    或者这样

    public function actionAdmin($id)
    {
        $model=new test();
        $model->unsetAttributes();  // clear any default values
        //$model->pid=$id;
        $model->setAttributes(array('pid'=>$_GET['id']));
        if(isset($_GET['test']))
            $model->attributes=$_GET['test'];
                            
        $this->render('admin',array(
            'model'=>$model,
        ));
    }
    

    不晓得这样是不是好懂些

  • 回复于 2012-05-22 17:43 举报

    这个好理解一些,我刷新还是不行 $model->setAttributes(array('eid'=>$_GET['id'])); 上面这行好像没有执行一样

  • 回复于 2012-05-22 17:47 举报

    不得哦~~

  • 回复于 2012-05-22 17:49 举报
    /**
    * Manages all models.
    */
    public function actionAdmin() {
        $model = new Category ( 'search' );
        $model->unsetAttributes (); // clear any default values
        $model->uid=Yii::app()->user->id;
        if (isset ( $_GET ['Category'] ))
            $model->attributes = $_GET ['Category'];
        $this->render ( 'admin', array ('model' => $model ) );
    }
    

    这是我的,能够正常工作

  • 回复于 2012-05-22 17:53 举报

    我的真不行跟search方法有关系吗。能看一下你的search方法不
    $model = new Category ( 'search' );

    你的题库不错啊,在创建试题的时候没有做防刷新啊,

  • 回复于 2012-05-22 17:56 举报

    我感觉actionAdmin里也没有错。。。就不知道问题出在那里,一下午了。55555

  • 回复于 2012-05-22 17:57 举报
    public function search() {
        $criteria = new CDbCriteria;
    
        $criteria->compare('id', $this->id);
        $criteria->compare('parent_id', $this->parent_id);
        $criteria->compare('title', $this->title, true);
        $criteria->compare('position', $this->position);
        $criteria->compare('tooltip', $this->tooltip, true);
        $criteria->compare('url', $this->url, true);
        $criteria->compare('icon', $this->icon, true);
        $criteria->compare('status', $this->status);
        $criteria->compare('task', $this->task, true);
        $criteria->compare('options', $this->options, true);
        $criteria->compare('uid', $this->uid);
        $criteria->compare('depth', $this->depth);
    
        return new CActiveDataProvider($this, array(
            'criteria' => $criteria,
        ));
    }
    
  • 回复于 2012-05-22 17:57 举报

    你看你的值是不是传进去了

  • 回复于 2012-05-22 17:59 举报

    echo $_GET['id'] 值是有的

    弱弱问一句 $criteria->compare('title', $this->title, true); 这个true是嘛个意思

  • 回复于 2012-05-22 18:08 举报

    new CDbCriteria()->compare($column, $value, $partialMatch=false, $operator='AND');

    //search时$column匹配$value,false为完全匹配,true为模糊匹配,$operator为操作符

  • 回复于 2012-05-22 19:52 举报

    谢谢咯。thanks

  • 回复于 2012-05-22 20:02 举报

    解决了,哈哈,谢谢你哈

    分享一下,我在sreach方法没有写字段匹配

  • 回复于 2012-05-22 21:40 举报

    :L您的帖子长度不符合要求。 当前长度: 2 字节 系统限制: 10 到 10000 字节

您需要登录后才可以回复。登录 | 立即注册