我爲我的項目使用php laravel 5.2。我想用數據庫表設計購物車(表名是購物車)。購物車表具有列名稱session_id以確定每個用戶購物車。如何跟蹤laravel中購物車表的sessionID
的問題是:
- 當用戶登錄會話ID將會改變,我失去了購物車的用戶(和的sessionId會改變其他條件)。
- 會話過期購物車還存在於數據庫中也不再使用,我怎樣才能算出這個刪除這些類型的購物車?
或任何其他的想法購物車設計與數據庫?
我爲我的項目使用php laravel 5.2。我想用數據庫表設計購物車(表名是購物車)。購物車表具有列名稱session_id以確定每個用戶購物車。如何跟蹤laravel中購物車表的sessionID
的問題是:
或任何其他的想法購物車設計與數據庫?
真的沒有理由使用會話ID作爲購物車所有者的標識符。背後操縱着購物車的邏輯非常簡單,它等同於以下內容:
cart
表)登記已登錄用戶。在這種情況下,由於用戶只能有一個購物車,所以將購物車物品鏈接到用戶的標識符爲user_id
。+---------+------------+
| user_id | product_id |
+---------+------------+
user_id
和product_id
真的是你基本上需要處理車項目,因爲它只是引用了用戶的列表:那麼作爲cart
表可以很簡單詳細信息存儲在users
表中,以及詳細信息存儲在products
表中的產品。當然,如果訪客用戶向購物車中添加了一些物品(此時存儲在會話中),如果該訪客決定在會話購物車中放入東西時登錄,則可能有意義在登錄過程成功後,向數據庫添加(更精確地同步)這些項目。
因此,如果用戶上次登錄時已在數據庫購物車中購買了某些產品,則當前會話購物車中的新產品將添加到舊產品中。儘管如果您想要同步這些物品,或者只是完全覆蓋這些物品以僅保留新購物車物品,那麼這是您的選擇。
因此,按照上述準則消除了從數據庫中刪除車的物品,因爲那裏將只在數據庫車中的項目鏈接到需要呆在那裏是下一個可用的註冊用戶的需要,這些用戶登錄
你可以依靠餅乾:
https://laravel.com/docs/5.2/requests#cookies
甚至更好的laravel做一個購物車包:
https://github.com/Crinsane/LaravelShoppingcart
這個包我用在我的Laravel 5電子商務實現中。
你也可以嘗試https://github.com/lukepolo/laracart – LukePOLO
這似乎是一個很好的包。 – user2094178
當用戶將產品添加到購物車時,他們應該能夠關閉瀏覽器會話並在幾天後重新訪問網站,並且仍然可以看到購物籃中的物品。使用cookies取而代之是有意義的,但也可以將購物車堅持到數據庫,因爲它提供了有價值的統計數據,例如經常選擇哪些產品,因此受歡迎。 – Alex