不将引导日期值保存到 Laravel 中的数据库表
Posted
技术标签:
【中文标题】不将引导日期值保存到 Laravel 中的数据库表【英文标题】:not save bootstrap date value to tha DB table in Laravel 【发布时间】:2017-12-15 14:17:47 【问题描述】:我在表单中使用引导日期选择器将日期值保存在控制器中
public function store(Request $request)
$task = new Task;
$task->task_name = $request->input('name');
$task->body = $request->input('body');
$task->assign = $request->input('status');
$task->priority = $request->input('status');
$task->duedate = $request->input('date');
$task->save();
这是表单日期选择器
<div class="col-xs-3">
<div class="input-group">
<div class="input-group-addon">
<i class="fa fa-calendar">
</i>
</div>
<input class="form-control" id="date" name="date" placeholder="MM/DD/YYYY" type="text"/>
</div>
</div>
这是关于 app.blade.php 中的引导日期选择器的 jQuery 函数
<script type="text/javascript" src="https://code.jquery.com/jquery-1.11.3.min.js"></script>
<!-- Bootstrap Date-Picker Plugin -->
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.4.1/js/bootstrap-datepicker.min.js"></script>
<script>
$(document).ready(function()
var date_input=$('input[name="date"]'); //our date input has the name "date"
var container=$('.bootstrap-iso form').length>0 ? $('.bootstrap-iso form').parent() : "body";
var options=
format: 'mm/dd/yyyy',
container: container,
todayHighlight: true,
autoclose: true,
;
date_input.datepicker(options);
)
</script>
在我的表到期日期列中保存其他没有日期值的表单日期,并使用 0000-00-00 值保存。我该如何解决这个问题?
【问题讨论】:
您好,欢迎来到 ***。请花一些时间阅读帮助页面,尤其是名为"What topics can I ask about here?" 和"What types of questions should I avoid asking?" 的部分。更重要的是,请阅读the Stack Overflow question checklist。您可能还想了解Minimal, Complete, and Verifiable Examples。 【参考方案1】:这不起作用,因为您已经像这样设置了日期格式format: 'mm/dd/yyyy',
,并且mysql日期数据类型只接受Y-m-d
格式,因此您可以更改日期时间选择器中的日期格式或使用Carbon
或date("Y-m-d", strtotime($request->input("date")))
函数更改
【讨论】:
做了但结果相同 使用dd()
检查输出并检查该日期列的数据类型
数据类型是日期日期列中的日期
你试过这个echo $request->input('date');
吗?
发生了这个错误语法错误,意外'echo' (T_ECHO)【参考方案2】:
看起来你已经把它整理好了,但是因为你已经在使用 laravel,所以只需使用 Carbon 包,它会非常简单。加上 Carbon 解析器非常好,如果你改变了从前端提交数据的方式,你不必担心更新你的代码库
use Carbon\Carbon;
public function store(Request $request)
...
$task->duedate = (new Carbon($request->input('date')))->toDateString();
...
【讨论】:
以上是关于不将引导日期值保存到 Laravel 中的数据库表的主要内容,如果未能解决你的问题,请参考以下文章
如何在javascript中获取django表单值而不将其保存到模型中
jQuery DataTable中的引导日期选择器在Laravel应用程序中不起作用