我需要在网站的所有页面中的每个表单中添加一个隐藏的输入字段,并在表格中提交一些值(在控制器中定义)。
我无法通过JS来实现,因为我正在使用安全组件,它会给出一个黑洞"黑洞"错误(我不想阻止它,我的意思是将该字段添加到未锁定的字段列表中)。有没有办法这样做?
感谢。
答案 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'
)
) ;