How can I access route parameters in custom validation rule
Here's my code:
Route:
http://api.example.com/users/{user_id}/update
Route::post('users/{user_id}/update', 'UserController@update')->name('user:update');
My custom validation rule:
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');
}
}
namespace App\Api\V1\Requests\SectionMilestone;
use App\Api\ApiRequest;
class SectionMilestoneRequest extends ApiRequest
{
public function rules()
{
return [
'teacher_id' => 'required|role:school'
];
}
}
If anybody knows how to accomplish this, please help me save some time.
Any help is appreciated. Thanks
You can take it directly from the request object or use the public request() function for it.
public function validateRole($attribute, $value, $rules)
{
$user_id = request()->route('user_id');
}