在Laravel中将日期选择器的值保存到数据库中
在Laravel中将日期选择器的值保存到数据库中
我在我的表单中有这个输入...我需要存储从中选择的日期,但是当我提交时我得到一个空值。
我是否漏掉了什么??当我提交时,数据库中没有任何值,我使用的是laravel5
class LeaveController extends Controller { public function ApplyLeave(Request $request) { Auth::user()->sent()->create([ 'tel' => $request->tel, 'email' => $request->email, 'start' => $request->datepicker, 'end' => $request->datepicker1, 'supervisor' => $request->supervisor, 'department' => $request->department, 'name' => $request->name, 'adress' => $request->adress, ]); return view('home'); }
问题原因:需要将日期转换为数据库接受的格式,如Y-m-d
,例如2017-01-19
。
解决方法:在存储到数据库之前进行日期转换。
代码示例:
public function ApplyLeave(Request $request){ Auth::user()->sent()->create([ 'tel' => $request->tel, 'email' => $request->email, 'start' => date("Y-m-d", strtotime($request->datepicker)), 'end' => date("Y-m-d", strtotime($request->datepicker1)), 'supervisor' => $request->supervisor, 'department' => $request->department, 'name' => $request->name, 'adress' => $request->adress, ]); return view('home'); }
还是空的..是因为我将默认值设置为null了吗?请打印$request->datepicker
和$request->datepicker1
的值,以便我们能够更好地帮助您。
问题的原因是日期选择器的输出格式不符合数据库中日期字段的格式。解决方法是将日期选择器的输出格式转换为数据库日期字段所需的格式(例如Y-m-d
格式)。
原始代码中,使用了Carbon::parse
方法来解析日期选择器的值并存入数据库。但是在使用Carbon
类之前,需要先导入Carbon
类或者使用\Carbon\Carbon::parse(...)
来调用。
问题的解决方法是将日期选择器的输出格式转换为数据库日期字段所需的格式。可以在服务器端或客户端进行转换。转换的方法有很多种,可以选择一种适合自己的方法。另外,需要注意的是,转换之前需要确定日期选择器的输出格式是什么。
在的问题中,有一个用户提到自己选择日期后输出的结果是01/06/2017
。另一个用户尝试了Carbon::parse('01/06/2017')
并成功将其解析为2017-01-06
。
然而,即使解析成功,仍有用户反馈说他们的数据库中的日期字段仍然为空。经过检查,发现数据库中的日期字段为NULL
,数据类型为date
。这可能是导致问题的原因。
最后,一个用户表示问题已解决,并感谢Stack Overflow社区的帮助。