2017-02-15 97 views
0

我一直堅持了幾天,我不能讓我的日期保存到我的數據庫和問題後的問題。有人可以推薦一個視頻/文章,或只是簡單地解釋如何完全處理日期?Laravel 5如何提交日期到SQL數據庫

遷移

$table->dateTime('start_date'); 
    $table->dateTime('end_date'); 

控制器

public function store(Request $request) 
{ 
    $this->validate(request(), [ 

    'name' => 'required', 
    'description' => 'required', 
    'status' => 'required', 
    'startdate' => 'required', 
    'enddate' => 'required' 

    ]); 

Event::create(request(['name', 'description', 'status', 'start_date', 'end_date'])); 

    return redirect('/events'); 
} 

模型

THIS IS OBVIOUSLY THE ISSUE and I would paste things but theres multiple things I've put here and nothing works. 

這是請求的DD

+request: ParameterBag {#40 ▼ 
#parameters: array:6 [▼ 
    "_token" => "yjU5A0Z5dpRES7KWK82fRMbHMRQkaooe27vYKlo7" 
    "name" => "My first event" 
    "status" => "Inquery" 
    "description" => "this is my desc" 
    "start_date" => "02/16/2017 6:36 PM" 
    "end_date" => "02/24/2017 6:37 PM" 
] 
+0

您使用的數據庫是? – Jackowski

+0

.env文件中的數據庫連接是mysql – DevJustin

回答

1

您需要以它理解的格式將日期提供給數據庫(通過laravel)。

您在前端使用的格式爲d/m/Y H:i A(有關日期格式的更多信息,請參閱PHP Date page)。數據庫喜歡接收格式爲Y-m-d H:i:s的日期。更好的是,laravel可以將碳日期對象插入到數據庫中,而不需要格式化。由於Carbon隨Laravel一起提供,您可以使用它將日期字符串更改爲Carbon對象。你可以看到,Carbon採用日期字符串,並且隨着格式的提供,它很容易創建一個新的Carbon對象。這可以直接插入到數據庫中。

如果你真的想要,你可以明確地把它轉換成一個字符串$start_date->toDateTimeFormat();,甚至$start_date->format('Y-m-d H:i:s');

// put the first three elements in the insertData array 
$insertData = request()->only(['name', 'description', 'status']); 
$insertData['start_date'] = \Carbon\Carbon::createFromFormat('d/m/Y H:i A', $request->input('start_date')); 
$insertData['end_date'] = \Carbon\Carbon::createFromFormat('d/m/Y H:i A', $request->input('end_date')); 

// both dates are now carbon objects, not strings 
Event::create($insertData); 
+0

感謝您的回覆,我對最後所說的有關使用事件插入模型的內容感到困惑。該模型被命名爲事件這就是爲什麼它在我的控制器。 – DevJustin

+0

Gotcha。我認爲這是在laravel中創建事件的代碼。我會刪除那部分。 – Mei

+0

那麼我將放置你的代碼行?我對laravel很新,我經歷了視頻,但仍在學習:)欣賞幫助:) – DevJustin