首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Laravel FormRequest验证获取用户模型,有时还会直接获取名称

在Laravel中,FormRequest是一种用于验证表单数据的类。它可以帮助我们轻松地验证用户输入,并确保数据的完整性和准确性。当我们需要验证用户提交的表单数据时,可以使用FormRequest来处理验证逻辑。

获取用户模型是指在验证过程中,我们可能需要获取与当前用户相关联的模型数据。这可以通过在FormRequest类中使用authorize方法来实现。在authorize方法中,我们可以通过获取当前用户的身份信息,例如用户ID,然后使用该信息来获取相应的用户模型。

以下是一个示例:

代码语言:txt
复制
namespace App\Http\Requests;

use Illuminate\Foundation\Http\FormRequest;

class MyFormRequest extends FormRequest
{
    public function authorize()
    {
        // 获取当前用户的身份信息,例如用户ID
        $userId = $this->user()->id;

        // 使用用户ID获取相应的用户模型
        $user = User::find($userId);

        // 在这里可以对用户模型进行进一步的操作

        return true; // 返回true表示授权通过
    }

    public function rules()
    {
        return [
            // 定义表单字段的验证规则
        ];
    }
}

在上面的示例中,我们首先通过$this->user()方法获取当前用户的身份信息,然后使用该信息获取相应的用户模型。在authorize方法中,我们可以对用户模型进行进一步的操作,例如检查用户的权限等。

此外,有时我们可能需要直接获取表单字段的名称。在FormRequest类中,可以使用$this->input()方法来获取指定字段的值。例如,如果我们想要获取名为name的字段的值,可以使用$this->input('name')

总结:

  • Laravel FormRequest是一种用于验证表单数据的类。
  • 通过在FormRequest类的authorize方法中获取当前用户的身份信息,可以进一步获取与当前用户相关联的模型数据。
  • 使用$this->input('name')可以直接获取表单字段name的值。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云主页:https://cloud.tencent.com/
  • 云服务器(CVM):https://cloud.tencent.com/product/cvm
  • 云数据库 MySQL 版:https://cloud.tencent.com/product/cdb_mysql
  • 人工智能平台(AI Lab):https://cloud.tencent.com/product/ailab
  • 云存储(COS):https://cloud.tencent.com/product/cos
  • 腾讯云区块链服务(BCS):https://cloud.tencent.com/product/bcs
  • 腾讯云物联网平台(IoT Hub):https://cloud.tencent.com/product/iothub
  • 移动推送(信鸽):https://cloud.tencent.com/product/tpns
  • 腾讯云音视频处理(VOD):https://cloud.tencent.com/product/vod
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Laravel 5.0 之 表单验证类 (Form Requests)

. ---- 让人头痛的表单验证 只要你曾经在使用 Laravel 框架的过程中试图找到有关用户输入验证的最佳实践, 你就应该了解这是一个争论最多并且几乎没有达成共识的话题....我们可以在控制器中进行验证, 可以在单独的一个服务层进行验证, 可以在模型中进行验证, 当然还可以在 Javascript 中进行验证 (这只是一个玩笑, 谁都知道不能只依赖于客户端的验证)....在 Laravel 中执行数据检查和验证的新手段....Laravel 会在解析 POST 路由之前自动把用户输入的信息传递给相应的表单请求, 因此我们的所有验证逻辑都可以移到独立于控制器和模型之外的 FormRequest 对象中....本文写作时, Laravel 5.0 还未正式发布, 因此上述内容最终可能还会有修改, 或者作者遗漏了某些东西.

3.8K50

3分钟短文:Laravel表单验证的“指挥中心”:FormRequest

引言 上一章我们学习到,Laravel控制器内引入 ValidatesRequests trait,从而使得继承了基类控制器的类拥有了验证器的所有方法。...下面我们根据业务逻辑,首先修改 authorize 方法,满足以下两个条件,才允许验证: 必须登录状态 用户必须发布过帖子 下面是代码的实现: public function authorize() {...$isExisted) { return false; } return true; } 大家看到了吧,在验证器内可以横向使用模型数据查询,来进行数据一致性判断...我们使用 FormRequest 改造验证方法之后,不仅引入了资源的权限判断,还把验证规则独立出来,可用于独立维护,或者集中管控,是不是方便多了?...写在最后 本文用了一个对博客帖子创建评论内容的方法,将验证规则在 FormRequest 内实现。

89800

3分钟短文:Laravel表单验证的“指挥中心”:FormRequest

引言 上一章我们学习到,Laravel控制器内引入 ValidatesRequests trait,从而使得继承了基类控制器的类拥有了验证器的所有方法。...下面我们根据业务逻辑,首先修改 authorize 方法,满足以下两个条件,才允许验证: 必须登录状态 用户必须发布过帖子 下面是代码的实现: public function authorize() {...$isExisted) { return false; } return true; } 大家看到了吧,在验证器内可以横向使用模型数据查询,来进行数据一致性判断。...我们使用 FormRequest 改造验证方法之后,不仅引入了资源的权限判断,还把验证规则独立出来,可用于独立维护,或者集中管控,是不是方便多了?...写在最后 本文用了一个对博客帖子创建评论内容的方法,将验证规则在 FormRequest 内实现。

66620

推荐17-Laravel 中使用 JWT 认证的 Restful API

我们将使用 JWT 身份验证laravel 中使用 restful API 构建基本用户产品列表。...用户注册时需要姓名,邮箱和密码。那么,让我们创建一个表单请求来验证数据。...在 getAuthUser 方法中,验证请求是否包含令牌字段。然后调用 authenticate 方法,该方法返回经过身份验证用户。最后,返回带有用户的响应。 身份验证部分现在已经完成。...false, 'message' => 'Sorry, product could not be added' ], 500); } 在 store 方法中,验证请求中是否包含名称...我们的用户现已注册并通过身份验证。我们可以发送另一个请求来检测 login 路由,结果会返回 200 和令牌。 ? 获取用户详情 ? 测试身份认证已完成。接下来测试产品部分,首先创建一个产品。 ?

10.9K20

Laravel 5.0 发布, 海量新特性!!

这些请求对象可以和控制器方法注入相结合, 提供一种全新的验证用户输入的方法....的 IoC container 识别到方法变量的类型时, 它会自动注入 FormRequest 的实例, 于是这个请求会被 自动验证....不仅如此, 如果该请求验证失败, 系统还会自动重定向到你预定义好的路由, 并且包含有错误提示的信息(根据需要写入session, 或者转换为 JSON 格式.) 表单验证从未如此简单过....了解有关 FormRequest 验证的更多细节, 请查阅文档. 控制器请求简单验证 Laravel 5.0 的控制器基类还包含了一个 ValidatesRequests 的 trait....了解有关 FormRequest 验证的更多细节, 请查阅文档. 全新的生成器 为了方便生成新的默认应用结构, 全新的 Artisan 生成命令已经被添加到框架中.

4.1K60

为你的 Laravel 验证器加上多验证场景的实现

前言 在我们使用 laravel 框架的验证器,有的时候需要对表单等进行数据验证,当然 laravel 也为我们提供了 Illuminate\Http\Request 对象提供的 validate...FormRequest 通过新建文件将我们的验证部分单独分开,来避免控制器臃肿。如果验证失败,就会生成一个让用户返回到先前的位置的重定向响应。...如果传入的请求是 AJAX,会向用户返回具有 422 状态代码和验证错误信息的 JSON 数据的 HTTP 响应。...当我们实际开发中,可能一个模块需要有多个验证场景,如果为每一个验证场景都新建一个 FormRequest 不就太过繁琐了。...,又减少了 FormRequest 文件过多,还可以自定义 json 数据是不是方便多了呢, 参考文档 laravel 表单验证 :表单验证Laravel 5.5 中文文档》 thinkphp

2.8K10

通过 Laravel 表单请求类实现字段验证和错误提示

,如果返回 false 则表示用户无权提交表单,会抛出权限异常中止请求,现在我们将其调整为返回 true 即可,然后我们在 rules() 方法中定义请求字段验证规则,比如我们可以将上一篇教程中的字段验证规则移到该方法中...'); } Laravel 底层在解析这个控制器方法的参数时,如果发现这个请求是一个表单请求类,则会自动执行其中定义的字段验证规则对请求字段进行验证,如果验证成功则继续执行控制器中的方法,否则会抛出验证失败异常...由于该表单请求类也是 Illuminate\Http\Request 的子类,所以后续获取请求字段值也可以通过 $request 来获取,将表单请求验证和请求实例参数合二为一,非常方便。...,在 Laravel 中也不在话下: 'books' => 'required|array', # 验证 books[] 'books.author' => 'required|max:10',...# 验证 books[author] 'books.*.author' => 'required|max:10', # 验证 books[test][author] 更多请求验证字段规则,请查看 Laravel

3.8K30

PHP-web框架Laravel-表单和验证

在Web应用程序中,表单是一种常见的用户交互方式。PHP-web框架Laravel提供了丰富的表单和验证功能,使得开发者可以轻松地创建、处理和验证表单数据。...}上述代码使用了Request对象来获取表单数据,并将用户名和密码保存到数据库中。...三、表单验证在接受表单数据之前,需要对表单数据进行验证,以确保其符合要求。在Laravel中,可以使用表单请求(Form Request)来实现表单验证。...如果表单验证失败,Laravel会自动将错误信息保存到Session中,并将用户重定向表单页面。如果验证成功,则可以使用$request对象来访问已验证的表单数据。...四、错误处理在Laravel中,可以使用$errors变量来获取表单验证错误信息。如果表单验证失败,Laravel会自动将错误信息保存到$errors变量中,并将其传递给视图。

2.5K30

3分钟短文:Laravel把数据验证的手伸向“请求体”

引言 上一章讲述了表单数据验证,从前端页面接收用户的输入信息,通过POST方法提交数据到相应路由地址, 并使用Request请求体的validate方法,默认传入request()->input()的参数...代码时间 laravel在请求相关的业务逻辑上设计的很灵活,你完全可以把验证流程从控制器方法中剥离出去, 这样你只需在相关的层面,专注于相关的逻辑就可以了。...} 其中 rules方法执行了需要执行的验证器的规则,laravel默认内置了很多常用规则,基本够用。...使用依赖注入方式,直接在 store 方法内实例化一个请求体: use App\Http\Requests\EventStoreRequest; public function store(EventStoreRequest...写在最后 本文深入laravel数据验证的方法,从特殊走向一般,并尝试把验证相关的代码从控制器内分离出来。使用自定义的请求体类,成功实现了代码的分离,而可控制性也更强了。

86311

Laravel 控制器:从 MVC 模式聊起

在 MVC 模式中,M 代表模型(Model),V 代表视图(View),C 代表控制器(Controller),控制器负责组织路由和业务逻辑(当然,对于更加复杂的业务逻辑还会引入 Service 层)...对于一些 CRUD 操作(数据库增删改查操作的简写)来说,常见的业务逻辑也就是从模型获取数据并将其渲染到页面,或者从页面获取用户提交数据并将其存储到模型类: ?...所以,你应该具备这样的意识:控制器的主要职责就是获取 HTTP 请求,进行一些简单处理(如验证)后将其传递给真正处理业务逻辑的职能部门,如 Service。...4、依赖注入 正如前面介绍的 Input 门面一样,Laravel 中的门面为 Laravel 代码库中的大部分类提供了简单的接口调用,通过门面你可以轻松从当前获取各种请求数据,比如用户输入、Session...5、资源控制器 有时候在编写控制器时命名方法名称可能是最困难的,好在 Laravel 为常见的 REST/CRUD 控制器(在 Laravel 中称之为「资源控制器」)提供了一套约定规则,并为此提供了相应的

11.2K51

3分钟短文:说说Laravel页面会话之间的数据保存Session用法

引言 我们知HTTP请求是没有状态的,两个请求之间没有直接的关联关系。但大多数情况下, 我们需要保持用户的会话间数据的连续性,这时,为了数据安全起见, 有必要在服务器上临时存储一些上下文数据了。...代码时间 在laravel中可以使用系统提供的Session类方便地操作会话数据,而且其存储介质也是抽象出来的, 可以无缝衔接,只是驱动更换一下罢了。...在 FormRequestServiceProvider 内注册请求体时调用初始化方法: $request = FormRequest::createFrom($app['request'], $request...比如直接根据键名获取值: $points = session()->get('points'); 如果键名不存在则使用默认值: $points = session()->get('points', 0)...$value() : $value; } 我们发现,如果传入的是一个匿名函数,那么直接进行了调用,并返回执行后的值。

1.5K88

Laravel源码解析之用户认证系统(一)

下表列出了Laravel Auth系统的核心部件 名称 作用 Auth AuthManager的Facade AuthManager Auth认证系统面向外部的接口,认证系统通过它向应用提供所有与用户认证相关的功能...,获取成功返回用户User模型实例(\App\User实现了Authenticatable接口) * 失败返回null * @return \Illuminate\Contracts...auth系统里认证用户时使用的方法,除了认证用户还会涉及用户认证成功后如何持久化用户的认证状态。...总结 本节我们主要介绍Laravel Auth系统的基础,包括Auth系统的核心组件看守器和提供器,AuthManager通过调用配置文件里指定的看守器来完成用户认证,在认证过程需要的用户数据是看守器通过用户提供器获取到的...Guard 看守器,定义了该如何认证每个请求中用户,认证时需要的用户数据会通过用户数据提供器来获取

3K30

Laravel 7发行说明

Laravel Sanctum 为 SPA (单页应用程序),移动应用程序和基于令牌的简单 API 提供了轻巧的身份验证系统。 Sanctum 允许应用程序的每个用户生成多个 API 令牌。...路由模型绑定优化 路由模型绑定优化由 Taylor Otwell 开发贡献 。 自定义键名 有时你可能希望使用 id 以外的字段来解析 Eloquent 模型。...7 将自动确定查询范围,以使用约定猜测其父级上的关系名称,以其父级检索嵌套模型。...在这种情况下,将假定 User 模型关联了名为 posts(路由参数名称的复数) 的关系,该关系可用于检索 Post 模型。 有关路由模型绑定的更多信息,请查阅路由文档。...有时候需要在查询执行过程中对特定属性进行类型转换,例如需要从数据库表中获取数据的时候。

9K20

Laravel5.7 Eloquent ORM快速入门详解

,默认规则是小写的模型类名复数格式作为与其对应的表名(除非在模型类中明确指定了其它名称)。...delete 方法之前从数据库中获取模型,不过,如果你知道模型的主键的话,可以调用 destroy 方法直接删除而不需要获取它: App\Flight::destroy(1); App\Flight...方法只获取软删除模型: $flights = App\Flight::onlyTrashed() - where('airline_id', 1) - get(); 恢复软删除模型 有时候你希望恢复一个被软删除的模型...例如,你可能经常需要获取最受欢迎的用户,要定义这样的一个作用域,只需简单在对应 Eloquent 模型方法前加上一个 scope 前缀。 作用域总是返回查询构建器实例: <?...有时候你可能需要确定两个模型是否是一样的,is 方法可用于快速验证两个模型是否有相同的主键、数据表、以及数据库连接: if ($post- is($anotherPost)) { // } 事件

15K41

从0开始做一个审批模块

有时候不乏一些定制化的需求,我们可能在某些申请的时候还会附带一些额外的信息。比如申请报销的时候可能会附带报销单的信息用于展示,于是加了一个扩展字段 payload。...>morphTo('target'); } } 定义 Trait 团队和项目都可以成为被申请的主体,有可能更多,为了减少代码的重复量,我们不妨利用 Trait 来帮我们实现,在其中定义了一个获取当前模型作为被申请对象的所有申请的方法...creator_id ,正常情况下,这个数据直接取当前登录用户,不需要单独接收这个参数了。...:『Laravel 中多态关系的表单验证[3]』 。...如果说直接取 applies 表中的数据进行展示的话,那得一条条数据进行遍历,判断当前用户是否可以看到本条申请.....

1.7K10

Laravel5.2之Demo1——URL生成和存储

学习主题 该demo主要涉及如下几个知识点: 创建数据库并迁移数据表 创建表单,学习Laravel的blade模板引擎 创建名为Link的模型Model 保存数据进入数据库 从数据库中获得...(3)、在成功创建数据库urls后,开始配置数据库名称用户名密码,在/config/database.php里配置host,database,username,password,由于配置文件使用env...数据库用户名为安装MySQL时配置的。...实际上,控制器也就是路由层route、视图层view与模型model层的黏合剂而已,一般写laravel代码流程也仅此而已:现在路由里写好路由,再建立好model(包括创建好migrations和model...'是输入不能为空,是laravel自带的验证规则,'url'也是laravel自带的URL验证规则,就是格式得符合URL格式,'|'表示且的意思。

24.1K31
领券