0

カスタム csrf トークンを追加できるように、$form->create() 関数の一部としてすべてのフォームに非表示の入力を追加しようとしています (レールのように)。

ヘルパーをオーバーライドして、その後に入力を追加できる方法はありますか?

4

3 に答える 3

0

CakePHP 2.x でエイリアスを介してコア ヘルパーをオーバーライドする

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
    }
}

ドキュメント:ヘルパーの使用と構成

于 2013-04-10T21:32:59.890 に答える