gpt4 book ai didi

validation - 如何从 FormRequest 类方法中访问当前经过身份验证的用户

转载 作者:行者123 更新时间:2023-12-03 09:49:55 24 4
gpt4 key购买 nike

我有一个带有两个功能的 User 模型来检查用户的性别。对于特定的表单,我创建了一个 FormRequest目的。现在,我需要设置一些特定于用户性别的验证规则,即对于男性用户有一组规则,对于女性用户有另一组规则。

这是我的用户模型:

// app\User.php
class User extends Model implements AuthenticatableContract, CanResetPasswordContract {

use Authenticatable, CanResetPassword;

public function is_male()
{
return $this->gender == Gender::male();
}

public function is_female()
{
return $this->gender == Gender::female();
}

public function profile_ok()
{
return $this->status == 'OK';
}
}

现在在 FormRequest类,有一个 authorize()方法来检查用户是否已登录并有权访问使用 Auth::check() 的表单。方法和 Auth::user()->profile_ok()方法(),它可以正常工作而不会抛出任何错误。但是在 rules()当我尝试通过 Auth::user()->is_male() 访问当前用户时的方法它抛出一个错误说,
FatalErrorException in ProfileRequest.php line 34:
Class 'app\Http\Requests\Auth' not found

这是我的 FormRequest 类:
// app\Http\Requests\ProfileRequest.php
class ProfileRequest extends Request {
public function authorize()
{
if ( !Auth::check() )
{
return false;
}
return Auth::user()->profile_ok();
}

public function rules()
{
if(Auth::user()->is_male())
{
return ['rule1' => 'required',]; //etc
}
if(Auth::user()->is_female())
{
return ['rule2' => 'required',]; //etc
}
}
}

我究竟做错了什么?如何从 rules() 方法中访问当前用户?

最佳答案

您可以通过 $this->user() 来做

关于validation - 如何从 FormRequest 类方法中访问当前经过身份验证的用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29970531/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com