0

我正在为一个电子商务项目学习 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 框架文档,但除了表格输入和表单生成器之外找不到任何有用的东西,而且我无法在我的代码中实现它。因为我不想在我的模型中创建变量,我只想使用一个变量和规则发送数据。

谢谢,çağlar。

4

1 回答 1

0

正如您所提供的,我没有找到任何关于此的规则。

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

如果 ad-title 是您的表字段名称,那么您可以编写。

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

而已 ...

否则你需要学习规则,下面是你可以学习的链接之一。

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

谢谢。

于 2013-11-01T12:18:32.580 回答