2

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()、間違いなく機能しません。自分が間違っていることを理解できていません。助けてもらえますか?

4

2 に答える 2

6

あなたの議論は順調ではありません(そうあるべきです):

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

ドキュメントを確認してください

于 2012-05-24T21:04:21.687 に答える
3

OK、私はそれを見つけました、ラリー・ウルマンの素晴らしいチュートリアルのおかげで。

ここにあります:

<?php echo $form->dropDownList($model,'project_id', CHtml::listData(Project::model()->findAll(), 'id', 'name')); ?>
于 2012-05-24T21:06:38.853 に答える