Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在Laravel 5中,如何仅对数据库表中的特定记录使用唯一验证?_Php_Mysql_Laravel_Laravel 5_Laravel 5.3 - Fatal编程技术网

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

Php 在Laravel 5中,如何仅对数据库表中的特定记录使用唯一验证?,php,mysql,laravel,laravel-5,laravel-5.3,Php,Mysql,Laravel,Laravel 5,Laravel 5.3,我正在尝试验证特定图书id 这意味着is应该是唯一的特定记录 table: questions $title = this is question 1 $book_id = 12 TRUE=如果问题未针对$book\u id=16发布,用户可以发布相同的问题 显示错误=如果为$book\u id=12发布了问题,则用户无法发布 这就是我到目前为止所尝试的 "required|unique:questions,question,book_id".$book_id, "required|uni

我正在尝试验证特定
图书id
这意味着is应该是唯一的特定记录

table: questions

$title = this is question 1

$book_id = 12
TRUE=如果
问题
未针对
$book\u id=16
发布,用户可以发布相同的
问题

显示错误=如果为
$book\u 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,

在创建过程中,您希望将该标题与数据库中
问题
表中的其他标题进行比较,如下所示:

'title' => 'unique:questions,title'

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

    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;                        
     }
  }
请参阅以了解如何准确使用自定义验证,请尝试以下规则:

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