我正在使用CModel(特别是Gii)为我的Yii应用程序生成表单。我对如何命名表单元素的name=""
属性有疑问。它们看起来与我的数据库中的表字段完全相同。因此,对于像Users
这样的表格。我得到了一个像<input type="text" name="Users[usr_username]" ... />
这会丢弃我的表名和字段。我知道我可以将模型名称更改为其他内容以避免显示我的真实表名,但我还想将usr_username
更改为username
至少。或者甚至删除元素名称属性上的模型名称,而是使用name="username"
。
我非常感谢您的意见。
此致
答案 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')相同。
此致