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

2018-09-19 11:53:15 +08:00
 DavidNineRoc

Version


开始之前,为方便查看结果,在/Exceptions/Handler.php文件捕获了异常 那么我们开始做一个验证吧:



原文链接-Laravel 中优雅的验证日期需要大于今天

5293 次点击
所在节点    PHP
30 条回复
update
2018-09-19 13:05:08 +08:00
看懵了。。
Rekkles
2018-09-19 13:12:58 +08:00
不知道你想表达什么东西,但是你都用 Laravel 了,不用 Carbon 去做日期处理吗?
geelaw
2018-09-19 13:15:13 +08:00
虽然我不是 PHP/Laravel 用户,但我看了如此精妙的操作之后,简单地查了一下文档:

https://laravel.com/docs/5.4/validation#rule-after
http://php.net/manual/en/function.strtotime.php

为什么不能用

'start_date' => 'required|date|after_or_equal:today'

呢?
belin520
2018-09-19 13:17:08 +08:00
尾巴的外链才是重点
但是正文真的不走心啊
carlclone
2018-09-19 13:26:18 +08:00
楼上的几位简直打脸,楼主被暴打
jowan
2018-09-19 13:45:11 +08:00
```
return [
'start_time' => 'nullable|date|after_or_equal:today',
'finish_time' => 'nullable|date|after_or_equal:start_time',
];
```

验证的字段必须是给定日期后的值,这个日期将会通过 PHP 函数 strtotime 来验证。
你也可以指定其它的字段来比较日期。

很简单明了的操作为何被你搞的这么骚
pkoukk
2018-09-19 13:51:37 +08:00
我不是 php 用户,我想问下这优雅么?
cncqw
2018-09-19 13:52:03 +08:00
一顿源码分析猛如虎
nothingtodo
2018-09-19 13:54:20 +08:00
@pkoukk 不优雅,明明能很简单的写个函数非得弄这么复杂,也可能是我看不懂 laravel 吧
justfindu
2018-09-19 13:56:30 +08:00
就不能好好看一下文档么
DavidNineRoc
2018-09-19 14:32:27 +08:00
@update 建议不要看后面的操作
@Rekkles 楼上有正确的用法之后,真正的操作只是需要一个时间字符串做参数,让 Laravel 作比较
@geelaw perfect
@belin520 哈哈>_<,该怎么做才走心呢 >
@carlclone 出来就是为了混的,没有什么打不打脸,就是学习到了
@jowan 没跳到 getDateTimestamp 这个方法详细看,才看到调用了 strtotime
@pkoukk 那么,实际你应该怎么做呢
@cncqw 哈哈
@justfindu 收到
zavieryip
2018-09-19 14:43:56 +08:00
自从学了 laravel,每次听到"优雅"总会自觉的替换成"恶心",大概是我境界不够
DavidNineRoc
2018-09-19 15:06:39 +08:00
@nothingtodo 写函数很复杂的,我一般都是直接 if (@empty($_GET))

@zavieryip 是的,对自己不喜欢的东西恶心的是对。如果对什么都有好感那人还有什么意思
nothingtodo
2018-09-19 15:13:31 +08:00
@DavidNineRoc if 也很简单啊,鸟哥都吐槽 laravel 复杂,费劲
lepig
2018-09-19 15:17:54 +08:00
没全看完 只是觉得正文确实不走心

`下图圈出的红色部分,需改成 return true 因为我们身份验证一般不在这里验证 ` 虽然我知道想表达的是什么,但是这文字描述跟图文都不匹配好吧.
lepig
2018-09-19 15:21:42 +08:00
@lepig 好吧 请无视我的评论. 原因是中间的几张图片没加载出来.导致文字和图片中描述的不相符.不过 v2 这图片看的真蛋疼,每张都必须在新标签打开才能看的清楚
xjr1022
2018-09-19 15:23:35 +08:00
还需要自己写吗,虽然我没用过 laravel,我记得 Yii2 就可以直接配置文件里面配置啊,laravel 那肯定也有的,再者这哪里优雅了
DavidNineRoc
2018-09-19 15:45:48 +08:00
@lepig 确实有些蛋疼,有时候贴大图还会丢失。
@xjr1022 有类似的,并不复杂,我在文章有一个分割线,说想去找找源码为什么在 rules 直接增加参数不生效,并分析原因。最后得出结果。
********************************************************
这个框架有一个表单验证器。正常的操作只需要两步
第一步在 request 类填写验证规则,比如 required, exists 之类的
3L 6L 的朋友说了用 today,可以在填写验证规则的时候少写一个多余的操作

![]( )

![]( )

就这两步,其他都是没用的东西。能看的就看,不能看的跳过就行。
DavidNineRoc
2018-09-19 15:50:58 +08:00
@nothingtodo 这个是真理,的确看到吐槽
alwayshere
2018-09-19 15:55:52 +08:00
论如何化简为繁

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/490760

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX