yii cGridView多项目

时间:2014-05-17 12:35:28

标签: yii

我不确定这是怎么做的,所以我在这里问:

我有一个Person模型和Event模型,以及一个连接表Person_Event。

我现在使用的界面以下列方式工作:

  1. 某人正在登录并且他的ID正在通过网址发送
  2. 此人正在从cGridView(复选框列)
  3. 中选择他感兴趣的活动
  4. 写一些评论 4.按下发送按钮,然后触发以下创建操作:

    public function actionXcreate()
    {
        $model=new Person_Event;
    
        if(isset($_POST['Person_Event']))
        {                    
            foreach ($_POST['selectedIds'] as $eventId)
            {                               
                $pmodel=new Person_Event;
                $pmodel->person_id=$this->_person->id;  //the id of the person who is logged in         
                $pmodel->attributes=$_POST['Person_Event'];     //the comment                   
                $pmodel->event_id = $eventId;           //all the events he checked in the grid         
                if (!$pmodel->save()) print_r($pmodel->errors);                         
            }
            $this->redirect(array('site/success'));
        }
    
  5. 到目前为止,一切都是合乎逻辑且简单的。但是,我最终得出的是,该人写的评论被复制到数据库中的每个person_event行。

    我想在网格的每一行放置一个文本框,并且将在那里写入的通信将转到特定事件。

    现在,我在yii中找到了关于" admin-panel" 这有点乐于助人,但是:

    我已经在行动中有了一个foreach,一个将该人的id与该事件的ID匹配,那么我如何为每个组合添加另一个评论呢?

1 个答案:

答案 0 :(得分:0)

默认的CGridView仅支持基本功能,您需要扩展CGridView或使用扩展名使列可编辑

最简单的方法是使用Yii-booster库中的TbEditableColumn 请参阅其他列类型部分中的http://yiibooster.clevertech.biz/extendedGridView#gridcolumns EditableColumn

如果您不喜欢或希望使用twitter-bootstrap样式,http://www.yiiframework.com/extension/eeditable之类的独立扩展程序会有所帮助。

或者,您可以自己扩展CGridView以扩展它以支持列级别编辑