一个model里面怎么传递数组值

View代码段:

<select name="MessageSend[ids]" id="select_left" multiple="multiple" size="15">


<option value="1">超级管理员</option>


<option value="2">一般人员</option>


</select>

controller代码:

$_POST['MessageSend[ids]']code]


这里取到的ids是一个string类型。不是array类型。


--------------------------------------------


如果把select 的name改为ids[],则可以取到数组。


-------------------------------------------


如果把select 的name改为MessageSend[ids[]].在controller里面只能看到 ids[ 这个变量。也是一个string值。

这个view代码是你自己写的还是CHtml产生出来的?

你如果用CHtml::activeListBox($model, 'ids'),应该能产生出MessageSend[ids][]的name。

是我自己写的名字的。因为我编写的extension没有限定多选框的名字。

现在碰到了这个问题,就是我在model里面定义了一个值ids来存数据,临时用的,但

$model->attributes=$_POST['model'];没有把ids值传递过去。

我看了loginForm的代码也是自己定义属性,但可以传递。

是不是继承CFormModel的原因?

如果你的model是继承CActiveRecord,那么你需要把这个变量在safeAttributes里声明。