Yii:如何使用其他模型数据填充Select输入?

pix*_*ine 2 relational-database yii

我正在玩一个小应用程序,以学习使用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>
Run Code Online (Sandbox Code Playgroud)

但它不断发出警告或错误(例如Invalid argument supplied for foreach(),并且肯定不起作用.我无法理解我做错了什么.你能帮忙吗?

boo*_*dev 6

你的论点不符合(应该是):

$frameworks = Framework::model()->findAll();
$list = CHtml::listData($frameworks, 'id', 'name');
echo $form->listBox($model,'framework_id', $list,array());
Run Code Online (Sandbox Code Playgroud)

查看文档