';required_if';验证与Laravel 5中的数据库检查


'required_if' validation alongside database check in Laravel 5

我正在实现一个调查生成器,其中包含几个允许的问题类型。这些类型是:

  1. 单选
  2. 多项选择
  3. 星级评定

1.2.要求用户给出多个可能的答案,而3.根本不需要任何可能的答案。这些要求作为true/false值存储在question_types.multiple_answers列中。

我需要一个验证规则,它将:

要求请求中存在answers[]数组,仅当数据库中所选question_type's对应的multiple_answers设置为true时


以下是我试图实现的目标:

...->validate($request, [
    'answers' => 'require_if:type,...' // <-- if 'type' has 'multiple_answers' set to true in database
]);

您可以创建条件验证规则来执行您想要的操作。只有当指定为第三个参数的函数返回true时,才会计算指定为第二个参数的规则。

$v->sometimes('answers', 'required', function($input) {
    // check database and return true if multiple_answers is set for the type ($input->type)
});