我试图验证特定book_id
的唯一问题
它意味着应该是唯一的唯一特定记录。
table: questions
$title = this is question 1
$book_id = 12
TRUE =如果question
未发布$book_id = 16
,则用户可以发布相同的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,
答案 0 :(得分:1)
尝试此规则:
"required|unique:questions,question,NULL,id,book_id,".$book_id,
答案 1 :(得分:0)
您可以进行一些自定义验证,如下所示
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了解如何准确使用自定义验证
答案 2 :(得分:-1)
您希望在创建过程中将标题与数据库中questions
表中的其他标题进行比较,如下所示:
'title' => 'unique:questions,title'