将输入字段添加到所有表单中 - cakephp

时间:2014-07-30 07:20:26

标签: forms cakephp

我需要在网站的所有页面中的每个表单中添加一个隐藏的输入字段,并在表格中提交一些值(在控制器中定义)。

我无法通过JS来实现,因为我正在使用安全组件,它会给出一个黑洞"黑洞"错误(我不想阻止它,我的意思是将该字段添加到未锁定的字段列表中)。有没有办法这样做?

感谢。

1 个答案:

答案 0 :(得分:0)

您可以创建自定义FormHelper并在创建表单时添加隐藏的输入:

App::import('Helper', 'Form') ;

class MyFormHelper extends FormHelper {

    public function create ($model = null, $options = array()) {
        return parent::create($model, $options).$this->_myInput() ;
    }

    protected function _myInput () {
        return parent::input('myfield', array(
            'value' => $this->_View->viewVars['myVarName'] ;
        ));
    }

}

此代码仅适用于CakePHP 2.x,对于以前的版本,请参阅this link以获取访问帮助程序中的视图变量的方法。

然后在AppController中添加:

public $helpers = array(
    'Form' => array(
        'className' => 'MyForm'
    )
) ;