Form Yii Framework中的自定义表单元素名称属性

时间:2012-04-27 07:20:11

标签: forms model yii gii

我正在使用CModel(特别是Gii)为我的Yii应用程序生成表单。我对如何命名表单元素的name=""属性有疑问。它们看起来与我的数据库中的表字段完全相同。因此,对于像Users这样的表格。我得到了一个像<input type="text" name="Users[usr_username]" ... />

这样的表单元素

这会丢弃我的表名和字段。我知道我可以将模型名称更改为其他内容以避免显示我的真实表名,但我还想将usr_username更改为username至少。或者甚至删除元素名称属性上的模型名称,而是使用name="username"

我非常感谢您的意见。

此致

2 个答案:

答案 0 :(得分:3)

所以你可以使用这样的简单文本字段:

<?php echo CHtml::textField('username'); ?>

然后将它们与控制器中的模型属性一起映射:

$model->usr_username = $_POST['username'];

但是你无法做大量任务:

$model->attributes = $_POST['Users'];

答案 1 :(得分:0)

如果你正在使用CActiveForm小部件来创建表单,在我认为是真的,因为你通过Gii生成了模型,你总是可以设置生成表单输入的方法的htmlOptions属性,比如:

$form->textField($model,'attribute_name',array('name'=>'your_custom_name'));

在上面的例子中,输入值可以通过$ _POST ['your_custom_name']访问,这意味着大量的赋值将无效。

另请注意,如果您不指定输入的id属性,它将与name属性('your_custom_name')相同。

此致