我正在设计一款涉及查看促销代码的应用。我已经研究过(谷歌),但我找不到解释类似问题的解决方案的资源,或者可以转化为这个问题的问题。
表:用户
ID,姓名,电子邮件等
表:代码(获奖代码)
ID,代码,值
表:已提交的代码(用户提交的代码)
Id,User_id,代码,时间戳
用户将检查他提交的代码的位置是否具有任何值,如果特定用户想要提交过多代码,则会记住提交的代码。 验证将被重新审视。保存在SubmittedCodes表中。
我想问你的方法是否正确?我应该使用自定义验证吗?我应该建立自定义助手吗?也许某些特定的MySQL查询?
我不希望任何人为我编码,只需要朝着正确的方向轻推。我想我知道如何使用搜索引擎,但我可能错过了一些。
我已经完成了关于自定义验证的简单教程,但是这个有其他目标,我无法将其用于我的要求。
目前我已经使用消息和管理员构建了sign / up用户管理系统,但这个部分/模块有点困难。
我上面提到的资源链接: https://laravel.com/docs/5.2/validation#custom-validation-rules https://scotch.io/tutorials/laravel-form-validation
答案 0 :(得分:0)
我无法完全理解您的问题,但是从我收集到的内容(如果我错了请纠正我),您希望用户提交代码,如果它与代码表然后将其存储在提交的代码表中,对吗?
在这种情况下,您可以使用exists
规则,因为您正在检查 ,如果 代码表中存在代码。
因此,在您的表单提交验证器中,您将添加如下规则:
'user_submitted_code' => 'exists:codes,code'
如果字段名称与数据库中的列名称匹配,您也可以将其缩写为
'code' => 'exists:codes'
希望有所帮助!如果我没有解决您的问题,请发表评论。
答案 1 :(得分:0)
如@haakym所述,您可以使用exists规则来验证该代码是否确实存在。
$this->validate($request, [
'user_submitted_code' => 'exists:codes,code'
]);
完成后,您需要检查特定用户是否已使用该代码。
$check = SubmittedCodes::where(
['user_id', $user_id],
['code', $user_submitted_code]
)->exists();