Laravel 5

时间:2016-08-03 17:22:59

标签: php laravel laravel-5 laravel-validation

我正在实施一个调查构建器,其中包含多个允许的问题类型。这些类型是:

  1. 单一选择
  2. 多项选择
  3. 星级评分
  4. 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
    ]);
    

1 个答案:

答案 0 :(得分:2)

您可以创建conditional validation rules来执行您想要的操作。仅当指定为第三个参数的函数返回true时,才会评估指定为第二个参数的规则。

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