【问题标题】:Setting array inputs rules - Yii Framework设置数组输入规则 - Yii 框架
【发布时间】:2012-07-11 07:48:09
【问题描述】:

我正在为一个电子商务项目学习 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。

【问题讨论】:

  • 规则应该在模型中。我建议您先阅读一些 Yii 基础知识,因为您似乎甚至没有在 MVC 框架中使用基本的 MVC 原则。
  • 你有没有想过使用Form Builder
  • @Örs 我在模型类中定义了规则。 $rules 只是我为模块化保存在数据库中的一些表单值。我会实施它们。我粘贴的代码来自我的观点(_form.php)
  • @bool.dev 表单生成器似乎很有用,我会实现它。谢谢!

标签: php yii


【解决方案1】:

我没有找到任何关于你给出的规则。

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

如果 ad-title 是你的表格字段名,那么你可以写。

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

就是这样……

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

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

谢谢。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-21
    • 2013-03-15
    相关资源
    最近更新 更多