【问题标题】:Laravel 5 Custom Validation - Custom MySQL QueryLaravel 5 自定义验证 - 自定义 MySQL 查询
【发布时间】:2016-09-01 13:47:36
【问题描述】:

我正在设计一个涉及检查促销代码的应用。我已经研究过(谷歌),但我找不到可以解释解决类似问题的资源,或者可以翻译成这个问题的问题。

表:用户

ID、姓名、电子邮件等

表格:代码(获奖代码)

ID、代码、值

表格:SubmittedCodes(用户提交的代码)

Id、User_id、代码、时间戳

用户会检查他提交的代码在哪里有任何价值,如果特定用户想要提交太多代码,提交的代码会被记住。 验证将被退回查看。保存在 SubmittedCodes 表中。

请问我的做法是否正确?我应该使用自定义验证吗?我应该构建自定义助手吗?也许是一些特定的 MySQL 查询?

我不想让任何人为我编写代码,只需要朝着正确的方向轻推。我想我知道如何使用搜索引擎,但我可能漏掉了一些。

我已经完成了关于自定义验证的简单教程,但这个教程有其他目标,我无法将它用于我的要求。

目前我已经建立了带有消息和管理员的注册/注册用户管理系统,但这部分/模块有点困难。

我上面提到的资源链接: https://laravel.com/docs/5.2/validation#custom-validation-rules https://scotch.io/tutorials/laravel-form-validation

【问题讨论】:

    标签: mysql validation laravel


    【解决方案1】:

    正如@haakym 所述,您可以使用exists 规则首先验证该代码是否存在。

    $this->validate($request, [
        'user_submitted_code' => 'exists:codes,code'
    ]);
    

    完成后,您需要检查该代码是否已被特定用户使用。

    $check = SubmittedCodes::where(
        ['user_id', $user_id],
        ['code', $user_submitted_code]
    )->exists();
    

    【讨论】:

      【解决方案2】:

      我无法完全理解您的问题,但根据我收集的信息(如果我错了,请纠正我)您希望用户提交代码,如果它与代码表中的代码匹配,则存储它在提交的代码表中,对吧?

      在这种情况下,您可以使用exists 规则,因为您正在检查如果代码表中存在代码。

      因此,在您的表单提交验证器中,您将添加如下规则:

      'user_submitted_code' => 'exists:codes,code'
      

      如果字段名称与数据库中的列名称匹配,您也可以简写它

      'code' => 'exists:codes'
      

      希望对您有所帮助!如果我没有解决您的问题,请发表评论。

      【讨论】:

        猜你喜欢
        • 2015-05-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-04-09
        • 2012-11-27
        • 2015-06-02
        • 1970-01-01
        相关资源
        最近更新 更多