我不确定这是怎么做的,所以我在这里问:
我有一个Person模型和Event模型,以及一个连接表Person_Event。
我现在使用的界面以下列方式工作:
写一些评论 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'));
}
到目前为止,一切都是合乎逻辑且简单的。但是,我最终得出的是,该人写的评论被复制到数据库中的每个person_event行。
我想在网格的每一行放置一个文本框,并且将在那里写入的通信将转到特定事件。
现在,我在yii中找到了关于" admin-panel" 这有点乐于助人,但是:
我已经在行动中有了一个foreach,一个将该人的id与该事件的ID匹配,那么我如何为每个组合添加另一个评论呢?
答案 0 :(得分:0)
默认的CGridView仅支持基本功能,您需要扩展CGridView或使用扩展名使列可编辑
最简单的方法是使用Yii-booster库中的TbEditableColumn
请参阅其他列类型部分中的http://yiibooster.clevertech.biz/extendedGridView#gridcolumns EditableColumn
如果您不喜欢或希望使用twitter-bootstrap样式,http://www.yiiframework.com/extension/eeditable之类的独立扩展程序会有所帮助。
或者,您可以自己扩展CGridView以扩展它以支持列级别编辑