在Laravel中,我有一个Convention对象,其中包含year,start_date和end_date。限制条件是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']
}
}
有什么主意吗? 谢谢兄弟。
答案 0 :(得分:0)
制定自定义规则:
//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,
],
//
],
答案 1 :(得分:0)
感谢您的回复。实际上,我在最初的研究方向上取得了成功:
$SameYear = "|after_or_equal:" . $this->year . "-01-01|before_or_equal:" . $this->year . '-12-31' ;
return [
'year' => 'required',
'start_date' => 'required|date' . $SameYear,