Php 如何使用laravel中的验证使输入日期字段大于或等于另一个日期字段
Hi iam使用laravel开发应用程序是否有任何方法可以使用验证使输入日期字段大于或等于另一个日期字段 我知道我可以通过jquery实现这一点,而且我已经做到了,但是我想知道这是否可以通过laravel验证实现,因为laravel已经得到了一些预定义的验证 比如说Php 如何使用laravel中的验证使输入日期字段大于或等于另一个日期字段,php,validation,laravel-4,blade,Php,Validation,Laravel 4,Blade,Hi iam使用laravel开发应用程序是否有任何方法可以使用验证使输入日期字段大于或等于另一个日期字段 我知道我可以通过jquery实现这一点,而且我已经做到了,但是我想知道这是否可以通过laravel验证实现,因为laravel已经得到了一些预定义的验证 比如说 protected $validationRules = array ( 'a' => 'date', 'b' => 'date|(some validation so that
protected $validationRules = array
(
'a' => 'date',
'b' => 'date|(some validation so that the b value is greater than or equal to that of 'a')'
);
编辑
如果有任何其他方法来解决这个问题使用拉维概念,请告诉我
我试过了
Validator::extend('val_date', function ($attribute,$value,$parameters) {
return preg_match("between [start date] and DateAdd("d", 1, [end date])",$value);
});
提前感谢如果您使用自己的规则扩展验证器,则正确的解决方案是。文档中的一个简单示例:
Validator::extend('foo', function($attribute, $value, $parameters)
{
return $value == 'foo';
});
阅读更多正确的解决方案是使用自己的规则扩展验证器。文档中的一个简单示例:
Validator::extend('foo', function($attribute, $value, $parameters)
{
return $value == 'foo';
});
阅读更多内容是的,您可以像这样使用
在:日期之后
或在:日期之前
:
protected $rules = array(
'date' => 'after:'.$yourDate
);
或者
protected $rules = array(
'date' => 'before:'.$yourDate
);
它会完全按照你描述的那样做。另外,请查看。
您还可以指定自己使用的规则。是的,您可以在日期之后使用
,或者在日期之前使用,如下所示:
protected $rules = array(
'date' => 'after:'.$yourDate
);
或者
protected $rules = array(
'date' => 'before:'.$yourDate
);
它会完全按照你描述的那样做。另外,请查看。
您也可以使用指定自己的规则。我也有同样的问题<日期可能相同时,“代码>之前”和“代码>之后”不起作用。以下是我的简短解决方案:
注意:Laravel 5.3.25及更高版本具有新的内置规则:以及
我也有同样的问题<日期可能相同时,“代码>之前”和“代码>之后”不起作用。以下是我的简短解决方案:
注意:Laravel 5.3.25及更高版本具有新的内置规则:以及
埃米尔·阿斯普曼的答案是正确的,但不适用于Laravel 5.2。此解决方案适用于Laravel 5.2:
Validator::extend('before_equal', function($attribute, $value, $parameters, $validator) {
return strtotime($validator->getData()[$parameters[0]]) >= strtotime($value);
});
埃米尔·阿斯普曼的答案是正确的,但不适用于拉雷维尔5.2。此解决方案适用于Laravel 5.2:
Validator::extend('before_equal', function($attribute, $value, $parameters, $validator) {
return strtotime($validator->getData()[$parameters[0]]) >= strtotime($value);
});
感谢您的回复,我希望after:date只允许指定日期之后的日期我需要验证规则来满足after和same规则,这样我的日期字段将允许相同和after日期,但不允许在date之前。我还在“.$yourDate”之后尝试了“date'=>”,但它引发了以下错误:-[语法错误,意外',预期')]after
和before
在时间相等时不允许相等。感谢您的回复,我希望after:date将只允许指定日期之后的日期。我需要验证规则来满足after和same规则,以便我的日期字段将允许相同日期和after日期,但不允许在date之前。我还在“.$yourDate”之后尝试了“date'=>”,但它引发了以下错误:-[语法错误,意外',预期')]之后
和之前
在时间相等时不允许相等。我阅读了文档,但我不确定如何编写表达式以满足我的条件我已经用我尝试过的内容更新了我的问题请看一看。我阅读了文档,但我不确定如何编写表达式以满足我的条件用我尝试过的更新了我的问题,请看一看。注意这对Laravel 5.2不起作用。请看我的答案。你把第一块代码放在哪里?在你的控制器?@user3253002中,你可以把第一块代码放在a中,这在Laravel 4.2中是怎么回事?注意,这对Laravel 5.2不起作用。请看我的答案。你把第一块代码放在哪里?在您的控制器?@user3253002中,您可以将第一个代码块放在a中,这在Laravel 4.2中是怎么回事?