Laravel:需要动态验证规则(从配置文件或设置读取)

时间:2018-08-27 07:35:21

标签: laravel validation rule

我有一个这样的请求规则:

public function rules()
{
    return [
        'title' => 'required',
        'recipients' => 'required',
        'attachments' =>'mimes:jpeg,png,pdf,doc,xls|max:10410',
    ];
}

因此,我正在寻找一种使规则动态化的方法,可以读取配置文件或从数据库读取

例如:

我已经创建了一个名为setting的辅助函数,它可以从数据库中加载设置,并且我想读取此数据并按照以下规则进行设置:

public function rules()
    {
        $max_upload_size = setting('max_document_upload_size'));
        return [
            'title' => 'required',
            'recipients' => 'required',
            'attachments' =>'mimes:jpeg,png,pdf,doc,xls|max:$max_upload_size',
        ];
    }

有可能还是应该为此做些什么?

谢谢。

2 个答案:

答案 0 :(得分:1)

请在max之后写入:'.

 public function rules()
        {
            $max_upload_size = setting('max_document_upload_size'));
            return [
                'title' => 'required',
                'recipients' => 'required',
                'attachments' =>'mimes:jpeg,png,pdf,doc,xls|max:'.$max_upload_size',
            ];
        }

答案 1 :(得分:0)

此问题涉及PHP,而不是Laravel。 There are many options to combine a string with a variable.

如果需要在字符串上进行很多设置,则可以使用以下语法:

return [
    'title' => 'required',
    'recipients' => 'required',
    'attachments' => "mimes:$mimes|max:$max_upload_size"
]