CakePHP Formヘルパーで別のコントローラのアクションへ処理を飛ばす方法

cake2-9-5-2
CakePHPは通常現ページのアクションを実行する。
/*****/users/index
を閲覧している場合、UsersController.phpのfunction index()内の処理を行うことになる。

ページ内の処理としては、ViewファイルにFormヘルパーを使いPOSTやGETをするという処理がはしる。
今回の場合は
app/View/Users/index.ctp
を編集することになり、通常Fromヘルパーを使う場合は

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

という記述になる。

これが実際のタグでは

<form action="/*****/users" id="UserIndexForm" method="post" accept-charset="utf-8">

という記述になる。

同一ページ内に別のアクションや別のコントローラの処理を行う場合は、fromタグのactionで処理をさせるコントローラに情報を渡す必要がある。
その場合の記述は

<?php echo 
$this->Form->create('User' , array(
  'url' => array(
  	'controller' => 'biorthythms',
  	'action' =>'add')
));
?> 

というように、配列でurlを渡してあげる必要がある。
この’url’はCakePHP2.8より前では’action’という記述だったよう。
今は禁止になっているので’action’で記述するとエラーになるので要注意。

コメントを書く