【发布时间】:2020-11-18 17:30:56
【问题描述】:
在我的输入表单中,我有两个字段; momentFrom & momentTo。如果以下任何条件失败,我需要进行验证,以提供错误消息。
-
momentFrom大于或等于momentTo。 -
momentFrom比现在少。
我的数据存储代码:
public function store(Request $request, Requisition $requisitionObj) {
$momentFrom = strtotime($request->txtTravelDate . " " . $request->txtTimeFrom);
$momentTo = strtotime($request->txtTravelDate . " " . $request->txtTimeTo);
$timeValidation = $requisitionObj->validateTiming($momentFrom, $momentTo);
if ($timeValidation['error']) {
echo 'ERROR: ' . $timeValidation['message'];
return view('requisitions.create');
} else {
/* store form data into requisition object */
$requisitionObj->travel_date = $request->txtTravelDate;
$requisitionObj->moment_from = $momentFrom;
$requisitionObj->moment_to = $momentTo;
$requisitionObj->save();
return redirect()->route('requisitions.index');
}
}
我见过 laravel 自定义验证规则,一次只能验证一个字段。但在我的场景中,我需要一次检查两个字段,这取决于对方。我怎样才能做到这一点?
提前感谢您的帮助!
【问题讨论】:
-
before(date) - after(date) 验证将对您有所帮助。详情:laravel.com/docs/7.x/validation#available-validation-rules
-
我可以不创建自定义验证来放置复杂的逻辑吗?
-
如果您想要自定义错误消息,请阅读页面:laravel.com/docs/7.x/validation#custom-error-messages
-
不仅仅是消息,我想在存储数据之前放置自定义验证逻辑。当用户尝试创建请求时,系统必须检查在该日期和时间是否有任何车辆可用。如果不可用,控制器必须向请求表返回错误消息。想知道如何放置这些逻辑并将消息发送回表单。 TIA