【发布时间】:2021-12-31 00:12:55
【问题描述】:
我正在尝试使用 php Laravel 将来自 Datepicker 的值存储在我的 MySQL 数据库中。
该请求适用于 AFAIK,因为当我 dd 请求时显示日期,但是在查看数据库时我只看到“0000-00-00”而不是日期,所以我猜我的控制器丢失了一些东西但是我不知道是什么。
这是我的控制器方法:
public function storePost(Request $request) {
$this->validate($request, [
'titel' => 'required|max:255',
'standort' => 'required|max:255',
'kontakt' => 'required|email|max:255',
'startdatum' => 'required|date',
'enddatum' => 'required|date',
'beschreibung' => 'required|',
]);
$request->user()->posts()->create([
'titel' => $request->titel,
'standort' => $request->standort,
'kontakt' => $request->kontakt,
'startdatum' => $request->startdatum,
'enddatum' => $request->enddatum,
'beschreibung' => $request->beschreibung,
]);
return redirect()->route('home');
}
在堆栈溢出时看到它后,我已经尝试过使用此版本,但它也不起作用:
public function storePost(Request $request) {
$this->validate($request, [
'titel' => 'required|max:255',
'standort' => 'required|max:255',
'kontakt' => 'required|email|max:255',
'startdatum' => 'required|date',
'enddatum' => 'required|date',
'beschreibung' => 'required',
]);
$request->user()->posts()->create([
'titel' => $request->titel,
'standort' => $request->standort,
'kontakt' => $request->kontakt,
'startdatum' => Carbon::parse($request->startdatum),
'enddatum' => Carbon::parse($request->enddatum),
'beschreibung' => $request->beschreibung,
]);
return redirect()->route('home');
}
我不确定它是否相关,但这里是日期来自的 html 代码的 sn-p:
<div class="flex flex-wrap -mx-3 mb-6">
<div class="w-full px-3">
<label class="block uppercase tracking-wide text-gray-700 text-xs font-bold mb-2 text-base" for="startdatum">
Startdatum
</label>
<input class="appearance-none block w-full bg-gray-200 text-gray-700 border border-gray-200 rounded
py-3 px-4 mb-3 leading-tight focus:outline-none focus:bg-white
focus:border-gray-500 @error('startdatum') border-red-500 @enderror" id="startdatum" name="startdatum" type="date" placeholder="Startdatum">
@error('startdatum')
<div class="text-red-500 mt-2 text-sm">
{{ $message }}
</div>
@enderror
</div>
</div>
<div class="flex flex-wrap -mx-3 mb-6">
<div class="w-full px-3">
<label class="block uppercase tracking-wide text-gray-700 text-xs font-bold mb-2 text-base" for="enddatum">
Enddatum
</label>
<input class="appearance-none block w-full bg-gray-200 text-gray-700 border border-gray-200 rounded
py-3 px-4 mb-3 leading-tight focus:outline-none focus:bg-white
focus:border-gray-500 @error('titel') border-red-500 @enderror" id="enddatum" name="enddatum" type="date" placeholder="Enddatum">
@error('enddatum')
<div class="text-red-500 mt-2 text-sm">
{{ $message }}
</div>
@enderror
</div>
</div>
【问题讨论】:
-
返回给您的日期是什么格式的?
-
@RiggsFolly 这就是格式:"startdatum" => "2021-11-20" "enddatum" => "2021-11-24"
-
相当肯定用户不是请求对象的一部分
-
@RiggsFolly 我得到了更多的东西,比如请求中的标题、位置和电子邮件,所有这些都正确存储在数据库中,只是日期显示为 0
-
你使用的是哪个版本的 Laravel