访问 FormRequest laravel 中的 url 参数
access to url parameter in FormRequest laravel
为了更新用户,我使用了一个名为 UserByAdminFormRequest
的 FormRequest,如下所示:
public function rules()
{
switch ($this->method()) {
case 'GET':
case 'DELETE': {
//some Rules
}
case 'POST': {
//some Rules
}
case 'PUT':
$user_id = $this->get('user_id');
dd($this);
return [
'name' => 'required',
'email' => 'email|unique:users,email,' . $user_id . ',user_id',
'password' => 'min:4',
're-password' => 'required_unless:password,' . NULL . '|same:password',
];
case 'PATCH': {
//some Rules
}
default:
break;
}
如您所见,email
字段应该是唯一的,但在这种情况下要忽略当前用户,我需要她的 user_id
值。
为此,我使用了 $this->get('user_id')
,但它总是 return null
值。
我在我的控制器中使用了这样的 FormRequest:
public function update(UserByAdminFormRequest $request, \App\User $user)
{
//
}
而我通过 PUT 方法调用的 url 是(例如):
http://api.zarsystem.dev/v1/dashboard/user/7
在这种情况下我能做什么或者有其他方法吗?
而不是
$this->get('user_id')
你需要使用
$this->user_id
要获取用户 ID 的值,请确保您有名称为 user_id 的输入字段或隐藏字段。
为了更新用户,我使用了一个名为 UserByAdminFormRequest
的 FormRequest,如下所示:
public function rules()
{
switch ($this->method()) {
case 'GET':
case 'DELETE': {
//some Rules
}
case 'POST': {
//some Rules
}
case 'PUT':
$user_id = $this->get('user_id');
dd($this);
return [
'name' => 'required',
'email' => 'email|unique:users,email,' . $user_id . ',user_id',
'password' => 'min:4',
're-password' => 'required_unless:password,' . NULL . '|same:password',
];
case 'PATCH': {
//some Rules
}
default:
break;
}
如您所见,email
字段应该是唯一的,但在这种情况下要忽略当前用户,我需要她的 user_id
值。
为此,我使用了 $this->get('user_id')
,但它总是 return null
值。
我在我的控制器中使用了这样的 FormRequest:
public function update(UserByAdminFormRequest $request, \App\User $user)
{
//
}
而我通过 PUT 方法调用的 url 是(例如):
http://api.zarsystem.dev/v1/dashboard/user/7
在这种情况下我能做什么或者有其他方法吗?
而不是
$this->get('user_id')
你需要使用
$this->user_id
要获取用户 ID 的值,请确保您有名称为 user_id 的输入字段或隐藏字段。