我正在实现一个调查生成器,其中包含几个允许的问题类型。这些类型是:
- 单选
- 多项选择
- 星级评定
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)
});