3

私の目標:連絡先フォームを再利用して、「親」と呼ぶいくつかの異なるエンティティに関連付けます。つまり、グループには連絡先情報があり、メンバーには連絡先情報があります....私が試した方法は次のとおりです。新しいフォームを作成せず、送信もせず、連絡先のフィールドをエコーするだけの「form.ctp」という名前の連絡先。2. requestAction を使用してこのファイルを呼び出す 私の問題: フォームの _Token が崩れます。

親 add.ctp の例

    <?php echo $this->Form->create('Group');?>
            <fieldset>


                echo $this->Form->input($field_prefix.'contact_id',array('type'=>'hidden'));
<?php echo $this->requestAction(array('controller' => 'contacts', 'action' => 'form'), array('named' => array('index'=>'0','parent'=>'Group',
        'fields'=>array(
        'email'=>array('value'=>'xx@yy.com','hidden'=>1)
))));

私が持っているform.ctpの中に:

  //Associated Model
    echo $this->Form->input('Contact.0.city',array('type'=>'hidden'));

            echo $this->Form->input('Contact.0.postcode');
            echo $this->Form->input('Contact.0.phone');
            echo $this->Form->input('Contact.0.cellphone');
            echo $this->Form->input('Contact.0.email',array('value'=>""));
            echo $this->Form->input('Contact.0.id',array('type'=>'hidden'));        
        ?>

生成された HTML ソース コードを見ると、request アクションを使用するか、form.ctp の内容を「親の」追加ファイルにコピーするだけで、同じ HTML 結果が得られることがわかります。でも!!!form.ctp アクション リクエストを使用すると、ブラックホールが発生し、トークンが台無しになります!!! 何か案は?前もって感謝します

4

1 に答える 1

1

問題がフォームの再利用だけである場合は、フォームを要素として使用してから、必要な正確な値に置き換えて複数回呼び出すことができます。

SecurityComponentに関しては、(少なくとも一時的な修正として)$this->Security->unlockedActions();コントローラのbeforeFilter()

于 2013-01-22T21:16:07.087 に答える