カスタム csrf トークンを追加できるように、$form->create() 関数の一部としてすべてのフォームに非表示の入力を追加しようとしています (レールのように)。
ヘルパーをオーバーライドして、その後に入力を追加できる方法はありますか?
CakePHP 2.x では、独自のヘルパーに「エイリアス」を使用して、デフォルトのヘルパーをオーバーライドすることができます。これにより、残りのコードを変更することなく、組み込みの CakePHP ヘルパーの「ドロップイン」置換を作成できます。
例えば:
アプリ/コントローラー/AppController.php
class AppController extends Controller {
public $helpers = array(
'Form' => array(
'className' => 'FancyFormHelper'
)
);
}
app/View/Helper/FancyFormHelper.php
App::uses('FormHelper', 'View/Helper');
class FancyFormHelper extends FormHelper {
public function create($model = null, $options = array())
{
$output = parent::create($model, $options);
// append your hidden fields
return $output . $this->createCSRFfield(); // Or whatever you name your method
}
}
ドキュメント:ヘルパーの使用と構成