私は e コマース プロジェクトの yii フレームワークを学んでいますが、これまでのところ順調に進んでいます。不動産の追加フォームがあり、そのフォームはデータベースを使用して生成されています。以下のコードは、フォーム (/views/ad/_form) を生成し、detail["ad-title"]、detail["ad-image"] などの入力フィールドに名前を付けます。
<?php
$connection = Yii::app()->db;
$command = $connection->createCommand("SELECT * FROM eml_ozellikler");
$options = $command->queryAll();
$command = $connection->createCommand("SELECT * FROM eml_kurallar");
$rules = $command->queryAll();
$i = 0;
foreach($options as $option){
echo '<div class="row">';
echo $form->labelEx($model, 'detail["'.$option['name'].'"]');
switch($option['tur']){
case "textfield":
echo $form->textField($model, 'detail["'.$option['name'].'"]');
break;
case "textarea":
echo $form->textArea($model, 'detail["'.$option['name'].'"]', array('rows'=>'5','cols'=>'40'));
break;
case "integer":
echo $form->textField($model, 'detail["'.$option['name'].'"]');
break;
case "selectbox":
CHtml::dropDownList($option['label'], 'detail["'.$option['name'].'"]', $rules[$i]['values']);
break;
case "radio":
break;
case "file":
echo $form->fileField($model, 'detail["'.$option['name'].'"]');
break;
case "image":
break;
}
echo $form->error($model,'detail["'.$option['name'].'"]');
echo '</div>';
$i++;
}
?>
問題は、彼らにルールを与えるときです。これをルールに追加すると、ルールは見た目だけで機能します
array('detay["ad-title"]', 'required'),
次に、そのフィールドは必須であり、(*) を取得しています。しかし、フォームを送信すると、「Ad.detail ["ad-title"]」値が定義されていないというエラーが表示されます。
ルールがなければ、$_POST['Ad']['detail']["ad-title"] などを使用して投稿し、投稿された値を正しく取得できます。
また; Yii Framework のドキュメントを確認しましたが、表形式の入力と Form Builder 以外に役立つものは見つかりませんでした。コードに実装することもできませんでした。モデルで変数を作成したくないので、変数とルールを 1 つだけ使用してデータを送信したいだけです。
ありがとう、サーラル。