我正在玩一个小应用程序,以学习使用Yii。
我创建了一个包含2个模型/表的小型webapp:项目和任务。 (1对多关系,在模型类中正确配置)。
我现在正在尝试自定义任务/创建视图,将文本输入字段替换为提出可用项目列表的选择框。
我打开了表单视图并尝试了这个:
<div class="row">
<?php echo $form->labelEx($model,'project_id'); ?>
<?php echo $form->textField($model,'project_id'); ?>
<?php
// my hack starts here
$projects = Project::model()->findAll();
$list = CHtml::listData($projects, 'id', 'name');
echo $form->listBox($model,'project_id','', $list); ?>
// my hack ends here
<?php echo $form->error($model,'project_id'); ?>
</div>
但是它不断发出警告或错误(例如Invalid argument supplied for foreach()
,并且肯定不起作用。我无法理解我做错了什么。你能帮忙吗?
答案 0 :(得分:6)
你的论点不合适(应该是):
$frameworks = Framework::model()->findAll();
$list = CHtml::listData($frameworks, 'id', 'name');
echo $form->listBox($model,'framework_id', $list,array());
答案 1 :(得分:3)
好的,我找到了,感谢Larry Ullman excellent tutorial。
这是:
<?php echo $form->dropDownList($model,'project_id', CHtml::listData(Project::model()->findAll(), 'id', 'name')); ?>