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以了解如何准确使用自定义验证

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...