如何在 Laravel 5 中的规则方法中传递(访问)ID?
How to pass (access) ID inside rules method in Laravel 5?
我正在使用表单模型绑定使用用户数据填充我的表单。
{!! Form::model($user, ['route' => ['user_update', $user->id]]) !!}
完美运行。当我点击 "Submit" 时,我输入了我的 UpdateUserRequest,我在其中根据某些规则验证了我的输入。在这种情况下,我想保留唯一的电子邮件地址,但当然我们需要 "skip uniqueness" 用于 "this" 行。
我有一个规则
'email' => 'required|unique:users,email,' . 123456,
当我临时硬编码此 ID(来自用户 table 的主键)时,它也能很好地工作。
如何在规则方法中访问这个ID? (特别是当我从控制器传递 $user_id 时)。
- 是的,Auth::user()->id 有效,但显然只适合我。我还处理其他用户的个人资料。
- 我可以将此用户的 ID 作为输入隐藏并通过请求/输入访问它,但我认为这不是一个好的解决方案,对吗?
- 同url段。我可能可以从 url 获取这个,但也许有更好的方法?
我在 rules() 方法中,我是 dd() 一堆东西,但没有像我预期的那样工作。
感谢任何提示! :)
您可以通过 route()->parameter()
:
按名称检索路由参数
$userId = $this->route()->parameter('userId'); // or whatever the name of the parameter is
或者快捷方式:
$userId = $this->route('userId');
好的,解决方法非常简单。
$this->user->id
完整规则如下:
'email' => 'required|unique:users,email,' . $this->user->id,
很有魅力!
我正在使用表单模型绑定使用用户数据填充我的表单。
{!! Form::model($user, ['route' => ['user_update', $user->id]]) !!}
完美运行。当我点击 "Submit" 时,我输入了我的 UpdateUserRequest,我在其中根据某些规则验证了我的输入。在这种情况下,我想保留唯一的电子邮件地址,但当然我们需要 "skip uniqueness" 用于 "this" 行。
我有一个规则
'email' => 'required|unique:users,email,' . 123456,
当我临时硬编码此 ID(来自用户 table 的主键)时,它也能很好地工作。
如何在规则方法中访问这个ID? (特别是当我从控制器传递 $user_id 时)。
- 是的,Auth::user()->id 有效,但显然只适合我。我还处理其他用户的个人资料。
- 我可以将此用户的 ID 作为输入隐藏并通过请求/输入访问它,但我认为这不是一个好的解决方案,对吗?
- 同url段。我可能可以从 url 获取这个,但也许有更好的方法?
我在 rules() 方法中,我是 dd() 一堆东西,但没有像我预期的那样工作。
感谢任何提示! :)
您可以通过 route()->parameter()
:
$userId = $this->route()->parameter('userId'); // or whatever the name of the parameter is
或者快捷方式:
$userId = $this->route('userId');
好的,解决方法非常简单。
$this->user->id
完整规则如下:
'email' => 'required|unique:users,email,' . $this->user->id,
很有魅力!