cakephp 3.x 日期时间容器模板
cakephp 3.x datetime container template
我正在使用 Cakephp 3 和 Bootstrap 构建一个简单的办公任务站点。
我正在尝试替换 cakephp 用于日期的常规 3 输入日期。使用单个输入并通过 Javascript 将其替换为一些花哨的日期选择器。
所以我试图通过更改蛋糕用于构建表单输入的模板来做到这一点。文档说:
In addition to these templates, the input() method will attempt to use distinct templates for each input container. For example, when creating a datetime input the datetimeContainer will be used if it is present. If that container is missing the inputContainer template will be used.
但我正在使用它,它没有任何改变。 HTML 输出仍然使用常规的 inputContainer。这是我的代码:
'Templates'=>[
'defaultForm' => [
'label' => '<label class="col col-md-2 control-label" {{attrs}}>{{text}}</label>',
'input' => '<div class="col col-md-10"><input class="form-control" type="{{type}}" name="{{name}}" {{attrs}} /></div>',
'select' => '<div class="col col-md-10"><select class="form-control" name="{{name}}"{{attrs}}>{{content}}</select></div>',
'inputContainer' => '<div class="form-group">{{content}}</div>',
'datetimeContainer' => '<div class="form-group"><div class="input-group date col col-md-10">{{content}}</div></div>',
'dateWidget' => '<input type="text" class="form-control" name="{{name}}" {{attrs}} /><span class="input-group-addon"><span class="glyphicon glyphicon-calendar"></span></span>'
]
]
我错过了什么吗?
好的,我刚刚发现我的错误。
我使用的是 "datetimeContainer" 但数据库中的字段是 DATE,而不是 DATETIME。因此,cakephp 在构建表单 HTML 时会查找 "dateContainer"。
我改变了:
'datetimeContainer' => '<div class="form-group"><div class="input-group date col col-md-10">{{content}}</div></div>',
至
'dateContainer' => '<div class="form-group"><div class="input-group date col col-md-10">{{content}}</div></div>',
现在可以正常使用了。
希望这对任何人都有帮助。
我用 css 按照代码解决了:
.date > select {
display: inline-block;
-webkit-border-radius: 0 !important;
-moz-border-radius: 0 !important;
border-radius: 0 !important;
box-shadow: none !important;
-webkit-box-shadow: none !important;
height: 34px;
padding: 6px 12px;
width: 33.3%;
font-size: 14px;
line-height: 1.42857143;
}
.datetime > .date > select {
display: inline-block;
-webkit-border-radius: 0 !important;
-moz-border-radius: 0 !important;
border-radius: 0 !important;
box-shadow: none !important;
-webkit-box-shadow: none !important;
height: 34px;
padding: 6px 12px;
width: 20%;
font-size: 14px;
line-height: 1.42857143;
}
请遵循代码:
我正在使用 Cakephp 3 和 Bootstrap 构建一个简单的办公任务站点。 我正在尝试替换 cakephp 用于日期的常规 3 输入日期。使用单个输入并通过 Javascript 将其替换为一些花哨的日期选择器。 所以我试图通过更改蛋糕用于构建表单输入的模板来做到这一点。文档说:
In addition to these templates, the input() method will attempt to use distinct templates for each input container. For example, when creating a datetime input the datetimeContainer will be used if it is present. If that container is missing the inputContainer template will be used.
但我正在使用它,它没有任何改变。 HTML 输出仍然使用常规的 inputContainer。这是我的代码:
'Templates'=>[
'defaultForm' => [
'label' => '<label class="col col-md-2 control-label" {{attrs}}>{{text}}</label>',
'input' => '<div class="col col-md-10"><input class="form-control" type="{{type}}" name="{{name}}" {{attrs}} /></div>',
'select' => '<div class="col col-md-10"><select class="form-control" name="{{name}}"{{attrs}}>{{content}}</select></div>',
'inputContainer' => '<div class="form-group">{{content}}</div>',
'datetimeContainer' => '<div class="form-group"><div class="input-group date col col-md-10">{{content}}</div></div>',
'dateWidget' => '<input type="text" class="form-control" name="{{name}}" {{attrs}} /><span class="input-group-addon"><span class="glyphicon glyphicon-calendar"></span></span>'
]
]
我错过了什么吗?
好的,我刚刚发现我的错误。 我使用的是 "datetimeContainer" 但数据库中的字段是 DATE,而不是 DATETIME。因此,cakephp 在构建表单 HTML 时会查找 "dateContainer"。 我改变了:
'datetimeContainer' => '<div class="form-group"><div class="input-group date col col-md-10">{{content}}</div></div>',
至
'dateContainer' => '<div class="form-group"><div class="input-group date col col-md-10">{{content}}</div></div>',
现在可以正常使用了。 希望这对任何人都有帮助。
我用 css 按照代码解决了:
.date > select {
display: inline-block;
-webkit-border-radius: 0 !important;
-moz-border-radius: 0 !important;
border-radius: 0 !important;
box-shadow: none !important;
-webkit-box-shadow: none !important;
height: 34px;
padding: 6px 12px;
width: 33.3%;
font-size: 14px;
line-height: 1.42857143;
}
.datetime > .date > select {
display: inline-block;
-webkit-border-radius: 0 !important;
-moz-border-radius: 0 !important;
border-radius: 0 !important;
box-shadow: none !important;
-webkit-box-shadow: none !important;
height: 34px;
padding: 6px 12px;
width: 20%;
font-size: 14px;
line-height: 1.42857143;
}
请遵循代码: