我從來沒有使用以前的會話,我試圖找出處理的最佳方式。基本上,我正在嘗試做的事:如何使用本地會話和MySQL的加入信息
1步選擇服務
2步選擇時間
3步審查和書
我能得到它的工作使用mysql沒有問題。我通常會做的是在每一步之後將信息保存到數據庫中,當我到達審查部分時,我將保存所有信息並確定。
不過,我不認爲這是解決這個的最佳方式,並可能導致在路上(如果他們停止在步驟2等等等等什麼的)問題
我決定嘗試Laravel 4屆,它非常容易保存會議並進入下一步。但是,當我到達最後一步時,我需要加入mysql表格以充分顯示有關其預訂的信息。我可以使用會話信息來加入信息嗎?我可以使用會話數據庫來保存這些信息嗎?或者使用不同的表格?
我控制器審查信息後郵編:
public function getReview() {
//sets id of user
$user = User::find(Auth::user()->id);
//gets the time and date that they booked from @getSchedule
$scheduler = Session::get('schedule');
//formats time to put in db
$date = strtotime($scheduler['date']);
//same thing as the line above
$dateFormat = date('Y-m-d',$date);
//model to save the schedule
$schedule = new Schedule();
$schedule->userID = $user->id;
$schedule->date = $dateFormat;
$schedule->block = $scheduler['timeslot'];
$schedule->status = "1";
$schedule->save();
//gets the services the user picked from @getServices
$service = Session::get('service');
//saves the services as individual rows in db table
foreach($service as $services)
{
if(!empty($services)) {
$service = new Service();
$service->userID = $user->id;
$service->services = $services;
$service->save();
}
}
return Redirect::to('dashboard');
}
這是GET瀏覽頁面(其中我有所有的加入問題)
public function showReview() {
$user = User::find(Auth::user()->id);
//show the information and confirm that they want all this crap...if they do..save it and return them to their dashboard
$time = DB::table('bk_schedule')
->leftJoin('bk_timeslot', 'bk_schedule.block', '=', 'bk_timeslot.id')
->where('bk_schedule.id', Auth::user()->id)->first();
$date = strtotime($time->date);
$dateFormat = date('D: F d, Y',$date);
$service = Session::get('service');
$serviceSummary = DB::table('bk_service')
->leftJoin('pr_service', 'pr_service.id', '=', 'bk_service.services')
->where('bk_service.userID', Auth::user()->id)
->get();
$total = DB::table('bk_service')
->leftJoin('pr_service', 'pr_service.id', '=', 'bk_service.services')
->where('bk_service.userID', Auth::user()->id)
->sum('pr_service.price');
return View::make('book.review', array('pageTitle' => 'Booking Appointment Review and Finalize', 'service' => $service, 'date' => $dateFormat,
'time' => $time, 'email' => $user->email, 'serviceSummary' => $serviceSummary, 'total' => $total));
}
是否有可能如果他們不提交給POST,將信息保存在GET處並將其刪除?我可以使用我的會話數據並使用我的MySQL查詢嗎?
以及問題描述我我是在發佈timeblock的ID ..它然後加入到時間塊表並加入該ID與實際時間段。所以當用戶進入評論頁時,它的POST ID是1,這是10am,它會顯示他們10am而不是id .. how可以在你的例子中工作嗎? – Lynx
你將擁有ID,所以你將不得不從數據庫中獲取數據來顯示這個ID的標題/文本,或者在步驟2/4中,你不僅可以傳遞id,而且可以傳遞文本 - 這不是很好的做法,因爲沒用交通 –