購物車

前言

購物車這一部分的內(nèi)容非常重要。涉及了很多知識點。

涉及到的知識點

  • cookie
  • session
  • php字符串處理
  • laravel中間件

這里我們只大致說一下,具體代碼分析請自行去github下載
下載鏈接https://github.com/songzh96/Provence.git

知識點分析

Cookie是什么?

Cookie實際上是一小段的文本信息??蛻舳苏埱蠓?wù)器,如果服務(wù)器需要記錄該用戶狀態(tài),就使用response向客戶端瀏覽器頒發(fā)一個Cookie??蛻舳藶g覽器會把Cookie保存起來。當(dāng)瀏覽器再請求該網(wǎng)站時,瀏覽器把請求的網(wǎng)址連同該Cookie一同提交給服務(wù)器。服務(wù)器檢查該Cookie,以此來辨認用戶狀態(tài)。服務(wù)器還可以根據(jù)需要修改Cookie的內(nèi)容。

Laravel中的cookie

Laravel會加密所有已創(chuàng)建的cookie信息,并附加上授權(quán)碼,當(dāng)客戶端擅自修改cookie信息時,該cookie將被廢棄,從而保證安全性。
我們這里主要使用的cookie是存放購物車商品列表信息,
通過Request實例上的cookie方法獲取cookie數(shù)據(jù),
該方法可以接收一個參數(shù)名返回對應(yīng)的cookie值,如果不傳入?yún)?shù),默認返回所有cookie值
這里我們就是通過這個方法來獲取購物車中的信息。

存入cookie.png
得到Cookie.png

Session是什么?

Session是另一種記錄客戶狀態(tài)的機制,不同的是Cookie保存在客戶端瀏覽器中,而Session保存在服務(wù)器上。客戶端瀏覽器訪問服務(wù)器的時候,服務(wù)器把客戶端信息以某種形式記錄在服務(wù)器上。這就是Session??蛻舳藶g覽器再次訪問時只需要從該Session中查找該客戶的狀態(tài)就可以了。

在 Laravel 中主要有兩種方式處理 Session 數(shù)據(jù):全局的輔助函數(shù) session,或者通過 Request 實例。
這里我們使用的是通過Request實例。

存入session.png
獲取session.png

PHP字符串處理

Laravel中間件

簡介
HTTP 中間件為過濾進入應(yīng)用的 HTTP 請求提供了一套便利的機制。例如,Laravel內(nèi)置了一個中間件來驗證用戶是否經(jīng)過認證,如果用戶沒有經(jīng)過認證,中間件會將用戶重定向到登錄頁面,否則如果用戶經(jīng)過認證,中間件就會允許請求繼續(xù)往前進入下一步操作。
當(dāng)然,除了認證之外,中間件還可以被用來處理更多其它任務(wù)。比如:CORS 中間件可以用于為離開站點的響應(yīng)添加合適的頭(跨域);日志中間件可以記錄所有進入站點的請求。

本案例的使用
  • 創(chuàng)建中間件
    在Http\MiddleWare\下創(chuàng)建php文件
創(chuàng)建中間件.png
  • 注冊中間件
    在Http\Kernel.php下進行修改
Paste_Image.png
  • 注冊中間件路由
    在Http\routes.php下進行修改
Paste_Image.png

功能介紹
購物車中商品的添加和刪除
同步購物車

功能分析
購物車中商品的添加和刪除

首先在前端注冊個點擊事件(添加),當(dāng)用戶點擊后就通過ajax傳值到后端,
后端首先要判斷用戶是否已登錄,
如果登錄就和數(shù)據(jù)庫同步處理,
若未登錄將產(chǎn)品先從cookie中取數(shù)據(jù)然后進行字符串處理,
如果是cookie中已有的產(chǎn)品那么就+1,
如果不是就需要將新產(chǎn)品存放到數(shù)組中,最后再將cookie更新一下
刪除邏輯大致差不多。

同步購物車

  • 首先需要在購物車的數(shù)據(jù)表中查找用戶,然后就能找到用戶的購物車中所對應(yīng)的所有商品。
    找到之后判斷本地購物車中的商品是否和數(shù)據(jù)庫中的一致
    若不一致則需要將本地新添加的商品存儲到數(shù)據(jù)表中
    最后為每個對象附加產(chǎn)品對象便于顯示
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容