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

     2023-03-15     26

关键词:

【中文标题】如何从 FormRequest 类方法中访问当前经过身份验证的用户【英文标题】:How to access current authenticated user from within FormRequest class method 【发布时间】:2015-07-10 07:41:56 【问题描述】:

我有一个用户模型,它有两个功能来检查用户的性别。对于一个特定的表单,我创建了一个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() mehtod 用于检查用户是否已登录并可以访问表单,它使用Auth::check()method 和Auth::user()->profile_ok() method(),没有抛出任何错误。但是在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() 方法中访问当前用户?

【问题讨论】:

【参考方案1】:

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

【讨论】:

Laravel 6 Backpack 4.0:如何在 FormRequest 类中获取当前页面 ID,或者我可以在不使用 FormRequest 类的情况下获得吗?

】Laravel6Backpack4.0:如何在FormRequest类中获取当前页面ID,或者我可以在不使用FormRequest类的情况下获得吗?【英文标题】:Laravel6Backpack4.0:HowtogetthecurrentpageIDinFormRequestclassorcanIgetbywithoutusingFormRequestclasses?【发布时间】:2020-07-2310:21... 查看详情

java示例代码_在java中,如何从另一个类的私有类访问公共方法

java示例代码_在java中,如何从另一个类的私有类访问公共方法 查看详情

如何从 Python 中的类内部访问类方法

】如何从Python中的类内部访问类方法【英文标题】:HowcanIaccessaclassmethodfrominsideaclassinPython【发布时间】:2012-12-1610:47:01【问题描述】:我想在Python中创建一个管理所有静态成员的类。这些成员应该在类的定义期间已经被初始化... 查看详情

如何从方法装饰器访问类元数据

】如何从方法装饰器访问类元数据【英文标题】:Howtoaccessclassmetadatafrommethoddecorator【发布时间】:2018-06-2818:52:33【问题描述】:我有两个装饰器。一个类装饰器和一个方法装饰器。类装饰器定义了我想在方法装饰器中访问的元... 查看详情

从视图子视图类中访问控制器变量或方法

】从视图子视图类中访问控制器变量或方法【英文标题】:accessacontrollersvariableormethodfromwithintheviewssubviewclass【发布时间】:2011-02-1020:01:00【问题描述】:晚上好,这是问题,[self.viewaddSubview:pauseView];在将pauseView加载到当前视图之... 查看详情

如何从类变量数组中访问类成员?

】如何从类变量数组中访问类成员?【英文标题】:Howtoaccessclassmembersfromanarrayofclassvariables?【发布时间】:2010-02-1721:22:34【问题描述】:我想使用PHP的反射功能从方法中检索参数名称列表。我有这样的课:classTestClasspublicfunctionme... 查看详情

如何从 ListView 的 OnItemDataBound 方法访问当前的 ItemType 项目值?

】如何从ListView的OnItemDataBound方法访问当前的ItemType项目值?【英文标题】:HowtoaccessthecurrentItemTypeItemvaluefromOnItemDataBoundmethodofListView?【发布时间】:2015-04-1918:06:33【问题描述】:在aspx页面中:<asp:ListViewID="ListViewPosts"ItemType="Pos... 查看详情

如何从 Ruby 中的实例方法访问受保护的类方法?

】如何从Ruby中的实例方法访问受保护的类方法?【英文标题】:HowdoesoneaccessprotectedclassmethodsfrominstancemethodsinRuby?【发布时间】:2011-12-2014:47:57【问题描述】:我一定遗漏了人们在Ruby中是如何做到这一点的。如果\'#protected\'未注... 查看详情

从 WPF 自定义 MarkupExtension 访问“当前类”

...MarkupExtension,通过为我提供一种在XAML中指定绑定的更好方法来让我的生活更轻松。但是我想知道是否有任何方法可以访问表示使用MarkupE 查看详情

如何在 Laravel 5.1 中强制 FormRequest 返回 json?

】如何在Laravel5.1中强制FormRequest返回json?【英文标题】:HowtoforceFormRequestreturnjsoninLaravel5.1?【发布时间】:2015-10-0901:33:58【问题描述】:我正在使用FormRequest来验证从我的智能手机应用程序的API调用中发送的内容。所以,我希望F... 查看详情

如何在 React 中创建可排序的表?如何从排序的对象访问类方法?

】如何在React中创建可排序的表?如何从排序的对象访问类方法?【英文标题】:HowtocreateasortabletableinReact?Howtoaccessclassmethodfromthesortedobjects?【发布时间】:2019-07-2716:01:45【问题描述】:我有一个对象数组。我想访问对象函数属性... 查看详情

如何从另一个普通类中引用故事板(当前视图)

】如何从另一个普通类中引用故事板(当前视图)【英文标题】:howreferencestoryboard(currentview)fromanothernormalclass【发布时间】:2014-11-1312:47:26【问题描述】:我想在viewDidLoad方法调用的类(在我的正常视图之外)中创建一个动画,... 查看详情

如何从另一个模块访问测试类以在 junit 测试中使用?

】如何从另一个模块访问测试类以在junit测试中使用?【英文标题】:howtoaccesstotestclassfromanothermoduletouseinjunittest?【发布时间】:2021-12-2714:01:54【问题描述】:我将当前的单片模块拆分为几个模块::app、:ui、:base。我使用:base模块... 查看详情

Laravel 5:在从 BaseController 扩展的控制器中对 FormRequest 类进行类型提示

】Laravel5:在从BaseController扩展的控制器中对FormRequest类进行类型提示【英文标题】:Laravel5:Type-hintingaFormRequestclassinsideacontrollerthatextendsfromBaseController【发布时间】:2015-06-3000:22:02【问题描述】:我有一个BaseController,它为我的API... 查看详情

如何从外部应用访问另一个应用中的contentprovider

参考技术A如何从外部应用访问另一个应用中的contentprovider用不用主要看实际应用的需求。众所周知,A应用要访问B应用中的数据,最好的方法就是B应用提供给B一些访问接口,然后A通过这个接口来进行对B中的数据进行增删改查... 查看详情

从程序集中访问类方法

...the_function。我将其中一个函数放在一个类中,但我不知道如何(externalClass::method不起作用)。我发现 查看详情

如何从方法 JS 访问类变量

】如何从方法JS访问类变量【英文标题】:HowcanIaccessclassvariablefrommethodJS【发布时间】:2019-08-0501:54:30【问题描述】:我是javascript的新手,我正在尝试使用某种方法创建一个简单的类,但我遇到了一个问题,我不知道我做错了什... 查看详情

java抽象和封装

如何从现实生活中抽象出类?从对象中抽出类:1.发现对象的种类2.发现对象的属性(特征)3.发现对象的方法(行为)提示:从对象中抽象出来的类,都可以创建这些对象访问修饰符:public:公共的(最高权限)private:私有的(最... 查看详情