【发布时间】:2014-09-26 21:49:08
【问题描述】:
所以我在工作(为了后代的缘故,我可能会添加敏感数据),并且决定我们需要使用 Cakephp 3.0(此时为测试版)提供的所有强大且记录最少的新工具的权力。
编辑:我的目标是为表单创建几个不同的模板,以通过 formhelper 模板或输入法调用。这方面真的没有太多好的例子。 自定义 FormHelper 使用的模板: 正如书中所见(以及互联网上其他任何地方),非常短的文档如下: http://book.cakephp.org/3.0/en/core-libraries/helpers/form.html#customizing-the-templates-formhelper-uses
网站说可以使用模板方法,然后给一个模糊的“使用”:
$myTemplates = [
'inputContainer' => '<div class="form-control">{{content}}</div>',
];
$this->Form->templates($myTemplates);
然后它说你可以使用它没有给出示例的 input() 方法。 最后但并非最不重要的一点是,自定义模板 FormHelper 应该允许您根据需要“制作”或“创建”任意数量的自定义表单助手,但它们没有给出如何做到这一点的示例!?卢武特?
我可以像他们的示例一样轻松使用它,但是单个自定义模板的威力在哪里?这对我没有任何好处。
所以通过一个新的可能解决方案,我尝试得到一个新的错误。
我收到此错误(在我看来)(来自以下代码):
致命错误 错误:找不到类“配置”
//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'));
?>
旧更新:我添加了
use "Cake\Core\Configure;"
在我看来,一切都很好,但我想将它添加到层次结构中的适当文件中,这样我就不必将它添加到每个视图中,
当然,除非它会导致整个应用程序整体出现效率问题。有谁知道它应该进入哪个文件?问候和 TIA!
最新更新:我刚刚想通了。很简单!在下面检查我的答案!希望这对某人有所帮助
【问题讨论】:
-
那你想要什么?这听起来像是一个很长的抱怨,但甚至没有告诉我们你的目标是什么?此外,如果您仔细阅读文档,这不是关于单个模板,而是您可以使用 templates() 方法通过传递一组模板来自定义任何输出。
-
正如我所说,是的,我同意这是文档所说的,因为它是显而易见的。我的问题是……怎么办?你如何创建这些模板。他们甚至没有在他们给出的示例中创建任何模板。他们只是以单一的股票默认值为例。如果我想创建三个或四个单独的自定义模板,这是如何完成的?我找到了一个网站:sanisoft.com/blog/2014/08/11/twitter-bootstrap-forms-cakephp-3 他做了类似的事情,但解释说由于缺乏文档,他选择通过 FormHelper 创建自定义小部件作为自定义模板输入表单。
标签: templates cakephp formhelper cakephp-3.0