1 回答
TA贡献1780条经验 获得超5个赞
您可以使用请求中的数据动态构建验证规则:
use Illuminate\Http\Request;
class StorePost extends FormRequest
{
public function authorize()
{
return true;
}
public function rules(Request $request)
{
$rules = [
'title' => 'required|string|min:1',
'body' => 'required',
'status' => 'required',
'image' => 'sometimes|image',
'published_at' => 'required',
'link' => 'required_if:type,==,RSS|required_if:type,==,LINK',
'external_id' => 'sometimes'
];
if($typeSlug = $request->get('type'))
{
$type = PostType::where('slug', $typeSlug)->with('customFields');
// map custom fields into a `['name' => 'rules']` format
$customFieldRules = $type->customFields->mapWithKeys(function($customField) {
return [$customField->field_name => $customField->validation_rules];
});
$rules = array_merge($rules, $customFieldRules);
}
return $rules;
}
}
- 1 回答
- 0 关注
- 133 浏览
添加回答
举报