【发布时间】: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 表单生成器似乎很有用,我会实现它。谢谢!