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,