0

我是 Laravel 的新手,我尝试验证一个请求。我必须遵循请求类:

namespace App\Http\Requests;

class TestRequest extends FormRequest
{
    protected function rules() 
    { 
        return [
            'group_id' => 'required|exists:groups,id,deleted_at,NULL|exists:group_users,group_id,user_id,' . \Auth::user()->id
        ];
    }
}

我的问题是:

  • 我必须检查该组是否存在并且没有被删除。这是第一个“存在”规则。
  • 而且我必须检查当前登录的用户是否属于该组。第二个“存在”规则。

我的问题是:

  • 当两个存在中的任何一个失败时,我怎么知道哪一个失败了?
  • 我想为这些存在检查返回不同的错误消息。我该怎么做?
  • 我是否必须为此编写自定义验证?

PS:我正在使用 Laravel 5.3

4

1 回答 1

1

我建议编写自定义规则。检查下面的链接,了解在代码中添加它的位置

https://laravel.com/docs/5.3/validation#custom-validation-rules

Validator::extend('group_check', function($attribute, $value, $parameters, $validator) {
    // Do custom exists check 1;
    $group = Group::where('id', $value)->where('deleted_at', 'null')->first();

    if (!$group) {
        return false;
    }

    // Do custom exists check 2;
});

Validator::replacer('group_check', function($message, $value, $parameters, $validator) {
    // Do custom exists check 1 but instead of returning false, return a custom message

    // Do custom exists check 2 return a custom message
});
于 2016-09-29T10:25:27.980 回答