0

私は 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 つだけ使用してデータを送信したいだけです。

ありがとう、サーラル。

4

1 に答える 1

0

あなたが与えているように、これに関する規則は見つかりませんでした。

array('detay["ad-title"]', 'required'),

ad-title がテーブル フィールド名の場合は、次のように記述できます。

array('ad-title', 'required'),

それでおしまい ...

それ以外の場合は、ルールを学習する必要があります。以下は、学習できるリンクの 1 つです。

http://www.yiiframework.com/wiki/56/

ありがとう。

于 2013-11-01T12:18:32.580 に答える