gpt4 book ai didi

templates - Cakephp 3 多个自定义模板formhelpers

转载 作者:行者123 更新时间:2023-12-03 08:21:27 26 4
gpt4 key购买 nike

所以我在工作(为了后代的缘故,我可能会添加敏感数据),并且决定我们需要使用 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 应该允许您根据需要“制作”或“创建”任意数量的自定义表单助手,但它们没有给出如何做到这一点的示例!?卢武特?

我可以像他们的示例一样轻松使用它一次,但是单个自定义模板的功能在哪里?这对我没有任何好处。

所以通过一个新的可能的解决方案,我尝试得到一个新的错误。

我收到此错误(在我看来)(来自以下代码):

fatal error
错误:找不到类“配置”
//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;" 

在我看来,一切都很好,但我想将它添加到层次结构中的适当文件中,这样我就不必将它添加到每个 View 中,

当然,除非它会导致整个应用程序整体出现效率问题。有谁知道它应该进入哪个文件?问候和 TIA!

最新更新 : 我刚刚想通了。很简单!在下面检查我的答案!希望这对某人有所帮助

最佳答案

此修复程序的作用是允许您使用 Bootstrap 拥有自定义模板表单(来自 cakephp 3 !!!!!!)。如果您想使用表单助手设置大小,并且所有这些都很好(安全性和其他方面)。

Cakephp 的 Jose Zap 告诉我尝试引导插件和小部件等等,但真正的方法应该是:

第 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' => '',]
]
];

第 2 步:从您的 Controller 内部为正确 View 调用此行的方法。

不要忘记在 Controller 顶部添加它
use Cake\Core\Configure;

$this->set('form_templates', Configure::read('Templates'));

第 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

第 4 步(最后):使用您想要的模板名称添加这一行 Bam!。
<?php $this->Form->templates($form_templates['shortForm']); ?>

关于templates - Cakephp 3 多个自定义模板formhelpers,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26068782/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com