微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – 如何仅对Laravel 5中数据库表中的特定记录使用唯一验证?

我正在尝试验证特定book_id的唯一问题
它意味着应该是唯一的特定记录.

table: questions

$title = this is question 1

$book_id = 12

TRUE =如果$book_id = 16未发布问题,用户可以发布相同的问题.

显示错误=如果发布了$book_id = 12的问题,用户无法发帖.

这是我到目前为止所尝试的

"required|unique:questions,question,book_id".$book_id,
"required|unique:questions,question,book_id,!".$book_id,
"required|unique:questions,question,NULL,id,book_id,".!$book_id,

解决方法:

您可以进行如下自定义验证

    class CustomValidator extends \Illuminate\Validation\Validator {
      public function ValidatecheckQuestion($attribute, $value, $parameters) {

        $cnt = DB::table('questions')->where('title','=',$parameters[0])
                        ->where('book_id','=',12)
                        ->count();
        if($cnt==0)
            return false;
        else
            return true;                        
     }
  }

请参阅https://laravel.com/docs/5.0/validation#custom-validation-rules以了解如何准确使用自定义验证

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐