Mat*_*one 4 php date strtotime laravel laravel-5
这有效
'expected_at' => 'date|after:"2016-04-09 10:48:11"',
Run Code Online (Sandbox Code Playgroud)
这有效
$rules['expected_at'] = 'date|after:'.$opportunity->created_at;
Run Code Online (Sandbox Code Playgroud)
这不起作用
'expected_at' => 'date|after:created_at',
Run Code Online (Sandbox Code Playgroud)
数据库中的“created_at”值正好如下
2016-04-09 10:48:11
Run Code Online (Sandbox Code Playgroud)
请注意,表单将按以下格式将 expected_at 日期传递给验证器
2016-04-09
Run Code Online (Sandbox Code Playgroud)
我认为这意味着您不能直接引用验证器中的模型字段?
小智 5
在 5.3(我测试过的版本)的 laravel 文档中:
您可以指定另一个字段来与日期进行比较,而不是传递要由 strtotime 评估的日期字符串:
'finish_date' => 'required|date|after:start_date'
https://laravel.com/docs/5.3/validation#rule-after
“after”规则后面的字符串(在本例中为 start_date)不是数据库字段,而是传递给验证器的输入字符串的一部分。
因此,按照您在上面尝试执行的操作,验证器期望一个名为“created_at”的字段与您提交的其余输入一起传递,这可能不存在,因为您的意图是让它从您的模型中读取,这会导致它失败。
长话短说,你最后的说法是正确的。“before/after”规则不引用模型字段,而是引用传递给验证器的其他输入字段,或者可以由“strtotime”解释的日期字符串
| 归档时间: |
|
| 查看次数: |
11072 次 |
| 最近记录: |