0

私はこの問題を台無しにしました:

私のコントローラーアクションでは、特別なモデル属性(たとえば、以下に示すようにproject_id属性)に次の1つの値を既に入力しました。

public function actionCreate()
{
    $model=new Issue;

    $model->project_id = $this->_project->id;
    if(isset($_POST['Issue']))
    ......

次に、上記のcreateアクションの_form.phpで、この属性にhiddenFieldを使用する必要があるのはなぜですか。

<?php echo $form->hiddenField($model,'project_id'); ?>

それらを完全に削除してみませんか?

4

1 に答える 1

0

actionCreateから収集された属性とともに、属性をモデルに手動で割り当てる場合$_POST、フォームでその属性の非表示フィールドをレンダリングする必要はありません。

とにかく、多くの場合、これはモデルロジックであり、コントローラーロジックではないため、モデル自体で、たとえばbeforeSave()メソッドでそのようなロジックを実行する方が適切です。モデルが他のコントローラーで使用されている場合は、属性の割り当てをもう一度繰り返す必要がありますが、モデルにある場合は、コードをDRYのままにしておくことができます。

于 2012-08-06T09:32:29.767 に答える