2012-04-27 157 views
2

我正在使用CModel(Gii专门)为我的Yii应用程序生成表单。我对如何命名我的表单元素的name=""属性存在问题。它们看起来完全像我的数据库中的表格字段。所以,对于像表:Users。我得到一个表单元素,如<input type="text" name="Users[usr_username]" ... />CForm上的自定义表单元素名称属性Yii Framework

这给出了我的表名和字段。我知道我可以将模型名称更改为其他名称以避免显示我的真实表名,但我也想至少将usr_username更改为username。或者甚至删除元素名称属性上的型号名称,并改为name="username"

我真的很感激你的意见。

问候

回答

3

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

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

然后用你的模型在控制器属性映射它们:

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

但你韩元” t能够做大规模的任务:

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

这也是值得一提的明确,你将无法做大量的作业 – 2012-04-27 07:50:17

+1

谢谢,我已经更新它明确提及这一点。 – Puigcerber 2012-04-27 07:56:24

+1

谢谢你们。这有很大帮助。我会想出一个方法来完成大量的任务,因为我也需要它。 – Sthe 2012-04-27 08:35:12

0

如果您使用CActiveForm小工具来创建形式,在您选择的情况下,我认为,因为你已经产生过GII模型是真实的,你总是可以设置生成表单输入,类似的方法htmlOptions属性:

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

在上面的例子中,输入值可以通过$ _POST ['your_custom_name']来访问,这意味着大规模的分配将不起作用。

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

问候

相关问题