如何在自定义验证规则laravel中访问路由参数

Roh*_*tri 3 php validation laravel laravel-5.3

如何访问自定义验证规则中的路由参数

这是我的代码:

路线:

http://api.example.com/users/{user_id}/update
Run Code Online (Sandbox Code Playgroud)
http://api.example.com/users/{user_id}/update
Run Code Online (Sandbox Code Playgroud)

我的自定义验证规则:

Route::post('users/{user_id}/update', 'UserController@update')->name('user:update');
Run Code Online (Sandbox Code Playgroud)
namespace App\Validators;

use Illuminate\Validation\Validator;

class Validators extends Validator
{
    public function __construct($translator,$data,$rules,$messages=[],$customAttributes=[])
    {
        parent::__construct($translator,$data,$rules,$messages,$customAttributes);
    }

    public function validateRole($attribute, $value, $rules)
    {
        // here I want to access the route parameters

        $user_id = $this->route('user_id');
    }
}
Run Code Online (Sandbox Code Playgroud)

如果有人知道如何实现这一点,请帮助我节省一些时间。

任何帮助表示赞赏。谢谢

Afi*_*eri 5

您可以直接从请求对象获取它或使用公共 request() 函数。

public function validateRole($attribute, $value, $rules)
{

    $user_id = request()->route('user_id');
}
Run Code Online (Sandbox Code Playgroud)