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

Laravel Validation 表单验证(二、验证表单请求)

... // 获取通过验证数据......中请求基类,所以我们可以使用 user 方法去获取当前认证登录用户。...strtotime 处理日期字符串: 'finish_date' => 'required|date|after:start_date' after_or_equal:date 验证字段必须是在给定日期之后或与此日期相同值...如果用户更改了用户名字段而没有改 E-mail 字段,就不需要抛出验证错误,因为此用户已经是这个 E-mail 拥有者了。 使用 Rule 类定义规则来指示验证器忽略用户 ID 。...Laravel 将自动从模型实例中获取主键值: Rule::unique('users')->ignore($user) 如果您数据表使用主键名称不是 id ,那就在调用 ignore 方法时指定字段名称

29.2K10

3分钟短文:Laravel Carbon自定义日期时间格式

引言 laravel引用了强大Carbon日期时间处理库用于日期时间操作, 并且在数据格式化中使用该库。本文就说一说程序中如何方便地使用 Carbon自定义格式。...学习时间 只要成功安装了laravel项目,已经内置了标准carbon库文件,比如说在写入数据库字段 created_at 时是这样格式: $item['created_at'] => "2020...']); 获取到Carbon对象之后,使用格式化函数进行字符串格式化操作。...,在模型中逐步引入了更加丰富特性,比如说 casts 特性, 可以支持对模型数据查询后进行指定格式化操作,省却了不少繁琐操作。...,手动自定义日期时间格式可使用链式操作: $user->created_at->format('M d Y'); 本质上是 User 模型实例化之后,会根据 $dates 内定义格式,调用Carbon

3.5K20
您找到你想要的搜索结果了吗?
是的
没有找到

【Mysql】Working with time zones...

简而言之,当前时区就是 Session 时区值。默认情况下,这是数据库所运行服务器系统时间。让我们运行一些查询来说明这一点。...为此: 我们使用 now() 获取当前时间(由于我们更改了应用程序时区,因此现在根据 Europe/Tallinn 时区生成日期),得到 2023-10-13 17:30:00 我们从数据库中得到令牌创建时间...如果您正在运行多个应用程序和数据库实例,时区变化就很容易发生。大多数云提供商默认将实例时区设置为 UTC,因此如果您运行是不同时区,则需要格外小心,始终将实例设置为该特定时区。...综上所述,在 Laravel 和 MySQL 中处理日期最合理方法如下: 始终将应用程序和数据时区设置为 UTC。这样就不必处理任何转换和时区问题。...如果您希望根据最终用户时区显示日期,那么在显示之前将日期转换为最终用户时区。避免将日期存储在不同时区。

16130

Laravel5.7 Eloquent ORM快速入门详解

简介 Laravel 内置 Eloquent ORM 提供了一个美观、简单数据库打交道 ActiveRecord 实现,每张数据表都对应一个与该表进行交互模型(Model),通过模型类,你可以对数据表进行查询...该属性决定日期被如何存储到数据库中,以及模型被序列化为数组或 JSON 时日期格式: <?...); }); 现在,当调用模型 delete 方法时,deleted_at 列将被设置为当前日期和时间,并且,当查询一个使用软删除模型时,被软删除模型将会自动从查询结果中排除。...Laravel 自带软删除功能就使用了全局作用域来从数据库中拉出所有没有被删除模型。编写自定义全局作用域可以提供一种方便、简单方式来确保给定模型每个查询都有特定条件约束。...例如,你可能经常需要获取最受欢迎用户,要定义这样一个作用域,只需简单在对应 Eloquent 模型方法前加上一个 scope 前缀。 作用域总是返回查询构建器实例: <?

15K41

掌握 Laravel 测试方法

单元测试是为了保证每个独立单元代码正确性;功能测试则是为了保证一个功能正确性。一言以蔽之,就是通过特定测试用例模拟用户访问应用行为验证系统正确性。...接下来,执行数据库迁移命令就回在数据库中创建对应数据表了。 $ php artisan migrate 在创建完数据之后,我们需要向 Post 模型类中加入如下代码 <?...为了实现这样测试功能,我们通过 DB 类使用原生 SQL 查询到一篇文章,并将文章标题赋值给 $db_post_title 变量。...之后,我们通过 Post 模型获取经过 getNameAttribute 方法处理过后同一篇文章标题赋值给 $model_post_title。...在 Laravel 项目中运行 PHPUnit 测试用例,需在项目更目录执行下面的命令。 $ phpunit 这个命令会运行项目中所有测试用例。

5.7K10

Laravel代码简洁之道和性能优化

思考:如何提高Model层查询DB效率?如何精简代码?...经过一番调研之后发现了一个堪称神器扩展:laravel-upsert 这个 Laravel 扩展为查询构建器和 Eloquent 添加了对 INSERT & UPDATE (UPSERT) 和 INSERT...IGNORE 支持 先简单说明一下业务场景: 首先表结构设计是:互相喜欢和添加联系人都是双向关系,即入库A B,B A这样成对双向数据 触发互相喜欢,插入2条双向数据,插入之前校验是否存在,存在不重复添加...如果互相喜欢,则添加双向联系人关系,插入之前校验是否存在,存在则更新type等字段,不存在则插入双向数据 我们通过这个场景能非常好体会laravel-upsert强大,不仅减少了代码量,也减少了sql...LaravelUpsert\Eloquent\HasUpsertQueries; 因为我们数据时间是int类型,不是laravel默认时间格式,并且我们插入时间和更新时间也不是laravel默认字段

5.7K20

Laravel中优雅验证日期需要大于今天

我们有时会碰到一个场景,比如买车票,需要进行查询车票剩余,这时候需要一个日期范围,开始日期必须大于等于今天,结束日期必须大于等于开始日期。...正确方法是这样 Laravel 重写父类prepareForValidation方法,之后再测试 Laravel 这时候得到想要验证了 分析一下过程 能通过依赖注入实例化我们想要对象...,这一切都得感谢LaravelIoC容器 容器每次解析完新对象之后,总是会释放一些绑定事件 Laravel 这些事件很多都是通过服务提供者来绑定,我们直接查看config/app.php...里有关表单验证服务提供者 Laravel Laravel Laravel 我们可以看到当实现ValidatesWhenResolved对象类在解析之后会自动调用...()方法拿到request数据,然后再通过$this->container->call([$this, 'rules'])拿到验证规则,所以我们在rules方法写自然不生效了,之后验证便无法继续进行

23510

Laravel项目的性能优化

php artisan config:cache 你在部署之后可以使用它。和路由差不多,别忘了编辑东西时候清理一下缓存。...用户填写我们表单; 将他/她详细信息写入数据库; 发送一封写有欢迎语和确认链接邮件给他/她; 并展示感谢页面; 很多时候,这些任务完全是在控制器中并且按照顺序执行。...我建议是学会如何使用事件和队列,可以将发送邮件任务交给专门流程,以致于改善用户使用体验。 我上篇文章专门讲了laravel队列使用,有兴趣可以去看一下Laravel队列使用。...如果您信息不够及时,预加载是一种通过使用特定语法来减少发送到数据查询数量来提高 Eloquent 性能方法。 更改基础查询以避免此性能问题。 您将只执行两个查询而不是1001!...这个缓存组件 * remember* 方法在未找到缓存情况下将会先从数据库中获取数据,并缓存60分钟。到期后,将会再次从数据库中获取最新数据,更新缓存。

3.7K30

需要掌握 Laravel Eloquent 搜索技术

即可以查询以指定字符开始或结尾数据,也可以查询包含指定字符数据。模糊查询在我们需要对依稀记得部分数据进行查询时非常实用。...Laravel 中也可以轻松执行对 JSON 数据查询,这得益于 Laravel 良好 JSON 支持。 不过在深入研究之前需要注意一点是:谨记 JSON 列存储是 区分大小写 。...依据单词发音进行模糊匹配 继续探讨最后一个主题,当用户输入查询表达式包含错误单词拼写时,该如何进行搜索呢?查询与给定表达式有类似发音语句是个不错主意。...5.6.8 以上 Laravel 版本,可以查看 Laravel changelog 执行 sound like 操作,会进行一个发音相似性算法,然后获取结果集。...但是这并不是我们需要关注,我们需将待查询字符串传给 where 语句即可。返回结果集即会包含完全匹配数据,也会包含发音近似的数据。 总结 Laravel 为我们提供了简单实用查询功能。

3.5K10

需要掌握 Laravel Eloquent 搜索技术

大多数情况下使用 Eloquent 查询功能就可以完成基本搜索处理。 预热 搜索功能是应用重要组成模块。优秀设计,可以帮助我们用户简单快速检索想要信息。...Laravel 中也可以轻松执行对 JSON 数据查询,这得益于 Laravel 良好 JSON 支持。 不过在深入研究之前需要注意一点是:谨记 JSON 列存储是 区分大小写 。...依据单词发音进行模糊匹配 继续探讨最后一个主题,当用户输入查询表达式包含错误单词拼写时,该如何进行搜索呢?查询与给定表达式有类似发音语句是个不错主意。...5.6.8 以上 Laravel 版本,可以查看 Laravel changelog 执行 sound like 操作,会进行一个发音相似性算法,然后获取结果集。...但是这并不是我们需要关注,我们需将待查询字符串传给 where 语句即可。返回结果集即会包含完全匹配数据,也会包含发音近似的数据。 总结 Laravel 为我们提供了简单实用查询功能。

4.3K20

3分钟短文:Laravel说要用软删除,可不要真删

所以,软删除概念,极为重要。 本文我们仍然不厌其烦地讲解软删除功能。 物理删除 其实就是真实地把数据数据库条目清除,laravel模型提供了开箱即用方法。...其实原理很简单,就是为模型追加一个全局作用域,为每个查询子句追加上如下筛选条件: WHERE deleted_at IS NULL laravel已经为我们写好这部分逻辑了,在模型内引入如下trait:...任何设置deleted_at为日期时间值记录,都不会包含在任何查询结果中,因此看起来已经被删除了。...这样操作非常有用,因为误删除数据,随时可以通过设置 deleted_at = null 而恢复到正常业务流程中,比如删除用户,删除订单,等等其他资源。...如果你在代码内要坚持查询全量数据,也包含软删除了数据,那么代码这样写: $events = Event::withTrashed()->get(); 写在最后 本文我们有重温了laravel模型软删除功能

2.1K00

Laravel 广播系统工作原理

今天,让我们深入研究下 Laravel 广播系统。广播系统目的是用于实现当服务端完成某种特定功能后向客户端推送消息功能。本文我们将学习如何使用第三方 Pusher 工具向客户端推送消息功能。...我们示例项目将实现一个支持登录用户才能收到即时信息消息系统,所以将使用 「 private(私有)」 类型频道。...{USER_ID} ,其中包含了指向接收信息用户 ID,用户ID 从 $this->message->to 中获取。...对于客户端程序需要先进行用户身份校验,然后才能惊醒连接 WebSocket 服务器处理;这样才能保证私有频道消息会广播给登录用户。同样在客户端也允许登录用户才能够订阅 user....{toUserId} 路由,Broadcast::channel 方法第二个参数接收一个闭包,Laravel 会将登录用户信息自动注入到闭包第一个参数,第二个参数会从渠道中解析并获取

9.1K20

laravel-nestedset:多级无限分类正确姿势

laravel-nestedset是一个关系型数据库遍历树larvel4-5插件包 目录: Nested Sets Model简介 安装要求 安装 开始使用 迁移文件 插入节点 获取节点 删除节点...一致性检查和修复 作用域 Nested Sets Model简介 Nested Set Model 是一种实现有序树高明方法,它快速且不需要递归查询,例如不管树有多少层,你可以使用一条查询获取某个节点下所有的后代...版本支持Laravel-4 强烈建议使用支持事物功能数据引擎(像MySqlinnoDb)来防止可能数据损坏。...约束 很多约束条件可以被用到这些查询构造器上: whereIsRoot() 获取根节点; whereIsAfter($id) 获取特定id节点后面的所有节点(不仅是兄弟节点)。...whereIsBefore($id) 获取特定id节点前面的所有节点(不仅是兄弟节点)。

3.4K20

分享8个Laravel模型时间戳使用技巧小结

默认情况下,Laravel Eloquent 模型默认数据表有 created_at 和 updated_at 两个字段。当然,我们可以做很多自定义配置,实现很多有趣功能。下面举例说明。 1....其他属性和方法 } 2. 修改时间戳默认列表 假如当前使用是非 Laravel 类型数据库,也就是你时间戳列命名方式与此不同该怎么办?...修改时间戳日期 / 时间格式 以下内容引用官网文档 official Laravel documentation: 默认情况下,时间戳自动格式为 ‘Y-m-d H:i:s’。...这个属性确定日期数据库中存储格式,以及在序列化成数组或 JSON 时格式: class Flight extends Model { /** * 日期时间存储格式 * *...多对多:带时间戳中间表 当在多对多关联中,时间戳不会自动填充,例如 用户表 users 和 角色表 roles 中间表 role_user。

3.7K31

laravel-admin 后台表格筛选设置默认查询日期方法

一、框架版本说明 laravel 5.5 laravel-admin 1.7.5 二、表格日期筛选使用 后端调用代码 $grid- filter(function(Grid\Filter $filter...三、需要设置默认查询日期原因 对于大表查询如果没有默认条件限制,查询数据库会非常慢,count(*) 总数都要好几秒 为了解决上面的问题,所以需要加默认条件限制 这个问题是老大解决,下面先说明处理方法...2019-07-09 [end] = 2019-08-08 ) 设置这个数据,是因为laraval-admin日期查询条件就是这样提交到前端,见下图: ?...自己出现问题如下: 看标题可以设置默认值,就想当然认为日期也是在那里设置。 其实标题设置在第一次打开列表页面,数据查询并没有标题查询条件,只是显示到了页面上。...前端查询条件数据显示是根据URL上面的参数设置。 以上这篇laravel-admin 后台表格筛选设置默认查询日期方法就是小编分享给大家全部内容了,希望能给大家一个参考。

2.5K42
领券