laravel - 如何在 Laravel 中检查日期验证规则中的年份
问题描述
在 Laravel 中,我有一个带有 year、start_date 和 end_date 的 Convention 对象。约束是 start_date 和 end_date 字段属于 year 字段。
我想使用请求验证,但似乎没有可用的规则符合我的需要。
我想要这样的东西(但它不起作用):
class ConventionRequest extends FormRequest
{
public function rules() {
return [
'year' => 'required',
'start_date' => 'required|date|after_or_equal:year-01-01',
'end_date' => 'required|date|before_or_equal:year-12-31']
}
}
解决方案
制定自定义规则:
//YearIsGreater Rule class
public function passes($attribute, $value)
{
$date = DateTime::createFromFormat("Y-m-d", $value);
$year = $date->format("Y");
return $year > request('year');
}
并像那样使用它
return [
'year' => 'required',
'start_date' => [
'required',
'date',
new YearIsGreater,
],
//
],
推荐阅读
- java - 执行搜索时,自定义 FieldBridge 中添加的 Hibernate/Lucene 字段未知
- laravel - 结合 Laravel + Vue.js 得到错误(未找到模块:错误:无法解析 'C:\xampp\htdocs\todolist\resources\js' 中的 './vue/App')
- c# - 从列表中删除元素并在 C# 中返回新列表的最佳方法是什么
- react-native - 使用 react-native-community/datetimepicker,如何显示用户选择的时间,而不是从新日期开始?
- elasticsearch - JanElastic 搜索查询以获取特定月份和年份的结果
- math - 以数值方式查找一组多项式解的所有解
- typo3 - 如何使内容从家庭布局滑动到默认布局
- websocket - Apollo Client 3 graphql 订阅同时使用轮询和 websocket
- javascript - 从自动完成下拉列表中选择
- kubernetes - Kubectl 日志 -f
日志打印完成后退出