aWe*_*per 11 php cakephp cakephp-2.0
是否有一种方法可以options['inputDefaults']在站点级别定义,而不是在每个表单中定义
Dav*_*ave 11
TLDR:
将下面的2块代码粘贴到各自的位置,然后将$defaultOptions阵列更改为您想要的任何内容 - 瞧.它不会改变任何的表单助手的功能,除了增加了默认为Form->create的inputDefaults.
解释和代码:
您可以通过自定义扩展FormHelper(比听起来更容易)MyFormHelper:
<?php
//create this file called 'MyFormHelper.php' in your View/Helper folder
App::uses('FormHelper', 'View/Helper');
class MyFormHelper extends FormHelper {
public function create($model = null, $options = array()) {
$defaultOptions = array(
'inputDefaults' => array(
'div' => false,
'label' => false
)
);
if(!empty($options['inputDefaults'])) {
$options = array_merge($defaultOptions['inputDefaults'], $options['inputDefaults']);
} else {
$options = array_merge($defaultOptions, $options);
}
return parent::create($model, $options);
}
}
Run Code Online (Sandbox Code Playgroud)
然后,在AppController中,按以下方式包含Form帮助程序(如果您已经有$ helpers变量,只需添加'Form' => ...它):
public $helpers = array(
'Form' => array(
'className' => 'MyForm'
)
);
Run Code Online (Sandbox Code Playgroud)
这样就可以调用$this->Form它,它实际上会调用你的自定义'MyFormHelper' - 它唯一能做的就是设置inputDefaults它们是否未指定,然后继续执行Cake的FormHelper中的常规逻辑.
| 归档时间: |
|
| 查看次数: |
1630 次 |
| 最近记录: |