Ura*_*rel 6 templates cakephp formhelper cakephp-3.0
所以,我在工作,而且要决定我们需要(在这个时候测试版)使用由CakePHP的3.0的所有功能强大且至少记录新工具的权力(与我可能会增加对后人的缘故处理敏感数据).
编辑:我的目标是为表单创建几个不同的模板,以通过formhelper模板或输入方法进行调用.对此真的没有太多好的例子.自定义模板FormHelper使用:如书中所示(以及互联网上的任何其他地方),非常简短的文档是:http: //book.cakephp.org/3.0/en/core-libraries/helpers/form.html #定制最模板,表单助手用途
该网站说您可以使用模板方法,然后给出模糊的"使用":
$myTemplates = [
'inputContainer' => '<div class="form-control">{{content}}</div>',
];
Run Code Online (Sandbox Code Playgroud)
$这个 - >形式 - >模板($ myTemplates);
然后它说你可以使用它没有给出示例的input()方法.最后但并非最不重要的是,自定义模板FormHelper应该允许您根据需要"制作"或"创建"这些自定义表单,但是他们没有使用如何做到这一点!?lulwut?
我可以像他们的例子一样轻松地使用它,但是单个自定义模板中的强大之处在哪里?这对我没有好处.
因此,通过一个新的可能解决方案,我尝试得到一个新的错误.
我收到此错误(在我的视图中)(来自以下代码):
致命错误错误:未找到"配置"类
//within bootstrap.php
Configure::write('templates', [
'shortForm' => [
'formstart' => '<form class="" {{attrs}}>',
'label' => '<label class="col-md-2 control-label" {{attrs}}>{{text}}</label>',
'input' => '<div class="col-md-4"><input type="{{type}}" name="{{name}}" {{attrs}} /></div>',
'select' => '<div class="col-md-4"><select name="{{name}}"{{attrs}}>{{content}}</select> </div>',
'inputContainer' => '<div class="form-group {{required}}" form-type="{{type}}">{{content}} </div>',
'checkContainer' => '',],
'longForm' => [
'formstart' => '<form class="" {{attrs}}>',
'label' => '<label class="col-md-2 control-label" {{attrs}}>{{text}}</label>',
'input' => '<div class="col-md-6"><input type="{{type}}" name="{{name}}" {{attrs}} /></div>',
'select' => '<div class="col-md-6"><select name="{{name}}"{{attrs}}>{{content}}</select> </div>',
'inputContainer' => '<div class="form-group {{required}}" form-type="{{type}}">{{content}} </div>',
'checkContainer' => '',],
'fullForm' => [
'formstart' => '<form class="" {{attrs}}>',
'label' => '<label class="col-md-2 control-label" {{attrs}}>{{text}}</label>',
'input' => '<div class="col-md-10"><input type="{{type}}" name="{{name}}" {{attrs}} /> </div>',
'select' => '<div class="col-md-10"><select name="{{name}}"{{attrs}}>{{content}}</select> </div>',
'inputContainer' => '<div class="form-group {{required}}" form-type="{{type}}">{{content}} </div>',
'checkContainer' => '',]
]);
//within my view
<?php
$this->Form->templates(Configure::read('templates.shortForm'));
?>
Run Code Online (Sandbox Code Playgroud)
旧更新:我补充说
use "Cake\Core\Configure;"
Run Code Online (Sandbox Code Playgroud)
在我看来,一切都很好,但我想将它添加到层次结构中的相应文件,以便我不必将其添加到每个视图,
这当然除非它导致整个应用程序的效率问题.有谁知道它应该进入哪个文件?问候和TIA!
最新更新:我刚想通了.很简单!检查我的答案如下!希望这有助于某人
这个修复程序的功能是允许您使用bootstrap自定义模板表单(来自cakephp 3 !!!!).如果你想使用表单助手设置大小和所有的好(安全性和不是).
Cakephp的何塞·扎普告诉我尝试使用自举插件和小工具,但实际上这样做应该是这样的:
第1步:创建config/templatesConfig.php并添加自定义表单.
<?php
$config = [
'Templates'=>[
'shortForm' => [
'formStart' => '<form class="" {{attrs}}>',
'label' => '<label class="col-md-2 control-label" {{attrs}}>{{text}}</label>',
'input' => '<div class="col-md-4"><input type="{{type}}" name="{{name}}" {{attrs}} /></div>',
'select' => '<div class="col-md-4"><select name="{{name}}"{{attrs}}>{{content}}</select></div>',
'inputContainer' => '<div class="form-group {{required}}" form-type="{{type}}">{{content}}</div>',
'checkContainer' => '',],
'longForm' => [
'formStart' => '<form class="" {{attrs}}>',
'label' => '<label class="col-md-2 control-label" {{attrs}}>{{text}}</label>',
'input' => '<div class="col-md-6"><input type="{{type}}" name="{{name}}" {{attrs}} /></div>',
'select' => '<div class="col-md-6"><select name="{{name}}"{{attrs}}>{{content}}</select></div>',
'inputContainer' => '<div class="form-group {{required}}" form-type="{{type}}">{{content}}</div>',
'checkContainer' => '',],
'fullForm' => [
'formStart' => '<form class="" {{attrs}}>',
'label' => '<label class="col-md-2 control-label" {{attrs}}>{{text}}</label>',
'input' => '<div class="col-md-10"><input type="{{type}}" name="{{name}}" {{attrs}} /></div>',
'select' => '<div class="col-md-10"><select name="{{name}}"{{attrs}}>{{content}}</select></div>',
'inputContainer' => '<div class="form-group {{required}}" form-type="{{type}}">{{content}}</div>',
'checkContainer' => '',]
]
];
Run Code Online (Sandbox Code Playgroud)
第2步:从控制器内部的方法中查看正确的视图,调用此行.
不要忘记在控制器顶部添加它
use Cake\Core\Configure;
$this->set('form_templates', Configure::read('Templates'));
Run Code Online (Sandbox Code Playgroud)
第3步:在bootstrap.php文件中添加它
// Load an environment local configuration file.
// You can use this file to provide local overrides to your
// shared configuration.
Configure::load('templatesConfig','default'); //fixed
Run Code Online (Sandbox Code Playgroud)
步骤4(最后):添加此行以及您想要Bam的模板名称!
<?php $this->Form->templates($form_templates['shortForm']); ?>
Run Code Online (Sandbox Code Playgroud)