【发布时间】:2013-03-17 08:17:49
【问题描述】:
我有一个resume 表,其中有一个position_type_id 列,它是position_type 表的外键。
在resume 创建表单上,position type 下拉列表的选项从position_type 表中正确拉出,并使用它们的 ID 作为选择的值进行设置。一切似乎都很顺利。
提交表单后,我可以验证值是否正在返回到 POST 变量中的控制器,但是它们没有通过属性填充传递到模型中:
$model->attributes=$_POST['Resume'];
这是控制器上的create 方法:
public function actionCreate()
{
$model=new Resume;
if(isset($_POST['Resume']))
{
$model->attributes=$_POST['Resume'];
if($model->save())
{
$this->redirect(array('view','id'=>$model->id));
}
}
$this->render('create',array(
'model'=>$model,
));
}
这是从相关模型加载键的表单:
echo $form->activeDropDownList(
$model,
'position_type_id',
CHtml::listData(PositionType::model()->findAll(),'id','name')
);
position_type_id 是简历模型上的键,它将外键传送到 PositionType 模型。它在表格和简历模型上的拼写相同。模型上的关系是:'positionType' => array(self::BELONGS_TO, 'PositionType', 'position_type_id'),
我想我可以从 POST 数组中获取每个值并手动设置它们,但看起来这应该“正常工作”。设置属性后$model 上的值用于手动输入的字段,而对于来自生成的下拉列表的所有字段,则为空白。
以下是实际生成的内容:
<select name="Resume[position_type_id]" id="Resume_position_type_id">
<option value="1">English Teacher</option>
<option value="2">School Administrator</option>
</select>
【问题讨论】:
-
表格是否通过
POST发布?position_type_id是否在模型的rules()函数中设置为安全的质量分配?
标签: php forms drop-down-menu model yii