[英]How to use is_unique form validation within a specific range of record?
[英]How to use unique validation for only specific record in database table in Laravel 5?
我想,以验证特定的独特问题book_id
它的意思是应该是唯一的只有特定的记录。
table: questions
$title = this is question 1
$book_id = 12
TRUE =如果$book_id = 16
未发布question
,用户可以发布相同的question
。
显示错误 =如果question
张贴$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,
试试这条规则:
"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以了解如何准确使用自定义验证
您可能希望在创建期间将标题与数据库中questions
表中的其他标题进行比较,如下所示:
'title' => 'unique:questions,title'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.