2

私はCModel(具体的にはGii)を使用してYiiアプリケーションのフォームを生成しています。name=""フォーム要素の属性の命名方法に問題があります。それらは私のDBの私のテーブルフィールドとまったく同じように見えます。したがって、次のようなテーブルの場合:Users。私は次のようなフォーム要素を取得します<input type="text" name="Users[usr_username]" ... />

これにより、テーブル名とフィールドがわかります。モデル名を別の名前に変更して、実際のテーブル名が表示されないようにすることができることは理解していますが、少なくともに変更usr_usernameしたいと思います。usernameまたは、要素のname属性のモデル名を削除して、name="username"代わりに使用することもできます。

ご意見をいただければ幸いです。

よろしく

4

2 に答える 2

3

したがって、次のような単純なテキストフィールドを使用できます。

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

次に、コントローラーのモデル属性を使用してそれらをマップします。

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

ただし、大規模な割り当てを行うことはできません。

$model->attributes = $_POST['Users'];
于 2012-04-27T07:40:36.403 に答える
0

CActiveFormウィジェットを使用してフォームを作成している場合(Giiを介してモデルを生成したため、この場合は正しいと思います) 、次htmlOptionsのように、フォーム入力を生成するメソッドのプロパティをいつでも設定できます。

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

上記の場合、入力値には$ _POST ['your_custom_name']からアクセスできます。つまり、大規模な割り当ては機能しません。

また、入力のidプロパティを指定しない場合は、nameプロパティ('your_custom_name')と同じになることに注意してください。

よろしく

于 2012-05-10T11:41:58.327 に答える