代码之家  ›  专栏  ›  技术社区  ›  Hamed Yarandi

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

  •  2
  • Hamed Yarandi  · 技术社区  · 6 年前

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

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

    因此,我正在寻找一种方法使规则动态化,使用read config file或read from database。

    例如:

    我做了一个名为setting的助手函数,它可以从我的数据库加载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 回复  |  直到 6 年前
        1
  •  1
  •   parastoo    6 年前

    请在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',
                ];
            }
    
        2
  •  0
  •   Илья Зелень    6 年前

    这个问题指的是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"
    ]