如何在自定义验证规则
中访问路径参数这是我的代码:
路线:
http://api.example.com/users/{user_id}/update
Route::post('users/{user_id}/update', 'UserController@update')->name('user:update');
我的自定义验证规则:
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'
];
}
}
如果有人知道如何做到这一点,请帮我节省一些时间。
感谢任何帮助。感谢
答案 0 :(得分:4)
您可以直接从请求对象中获取它,也可以使用public request()函数。
public function validateRole($attribute, $value, $rules)
{
$user_id = request()->route('user_id');
}