我将在这里尝试介绍大多数重要细节...
我目前正在为运输服务商预订系统。我使用Laravel,最初是通过将预订模型附加到用户开始的。
但是,客户现在希望他们不必在预订过程的最后一步之前登录或注册。我之前在Session / Local Storage中完成过购物车等工作,但是我想在开始之前,我会在StackOverflow上得到一些友好的人的帮助!
这时对我而言,最理想的方法是使Booking模型上的user_id可为空,但是当访问者返回该站点时,我将如何知道他们的预订?
我希望这是有道理的,也希望有人解决了与此类似的问题,并且可以阐明未来的最佳策略!
答案 0 :(得分:1)
我创建了与您在一家已经工作了一段时间的公司中所说的类似的东西,我指出了我的建议,以查看它是否可以帮助您以最佳的方式实现目标。
正如您所指出的,我使用可为空的 user_id 创建了保留,因为在几乎所有保留应用程序中通常都会发生这种保留,它们不是永恒的,因此我添加了一个字段( max_datetime ),该保留将持续的最长时间,以及一个字段(令牌),其中仅包含预订代码,另外还有一个字段( ip )会议。 (在我提出的申请中,保留时间最多保持12小时,或者直到同一天的晚上11:59,这可能少于12小时。)
然后为自定义Task Scheduling创建一个Artisan Console。它所做的是消除满足要消除条件的储备金。
预订完成后,它与 user_id 和其他具有空值的字段( max_datetime ,令牌, ip )。啊!是,然后输入一个字段(已确认)以“ true”确认预订已完成,默认情况下为“ false”。
我使用会话来检查“ ip ”和“ 令牌”,如果没有,我问他们是否有令牌来表示。 如果您当时不想继续,系统会允许您获取“ 令牌”,并向您警告保留时间。
我无权访问该代码,因为它来自一家公司,我只保留了这个想法。希望对您有帮助。亲切的问候。