Laravel中使用FormRequest的Post方法的两个不同规则

时间:2017-04-06 08:00:41

标签: laravel laravel-5.3 dingo-api

我使用Dingo API和FormRequest来验证HTTP API请求。我有这些规则:

    switch ($this->method()) {
        case 'POST':
            return [
                'file' => 'required|mimes:pdf,png,jpeg,jpg',
                'title' => 'required|unique:documents'        
            ];
        case 'PUT':
        case 'PATCH':

            return [
                'id' => 'required',
                'filename' => 'unique:documents,filename' . $this->route("id"),
                'title' => 'unique:documents,title' . $this->route("id")
            ];
        case 'DELETE':
            return [
                'id' => 'required'
            ];
    }

然而,我意识到在POST的情况下我需要有两个不同的规则。如果请求中存在某个变量,那么我不需要该文件。

例如,如果collected为真或存在于我通过HTTP请求发送的对象上,那么应该需要file。否则不会。

我目前的解决方法是将这两个人分成不同的控制器,但我不满意,我正在寻找实际规则的调整。

有什么想法吗?

0 个答案:

没有答案