У меня есть промежуточное программное обеспечение, где мне нужно ограничить доступ пользователей, если определенная дата прошла, но функциональность не работает должным образом
Код
class PaidMiddleware
{
public function handle($request, Closure $next)
{
$invoices = Invoice::where('paid', false)->get();
$now = Carbon::today();
foreach($invoices as $invoice){
if(Auth::id() == $invoice->user_id && $invoice->end->isAfter($now)){
return redirect()->route('forbidden');
} else {
return $next($request);
}
}
return $next($request);
}
}
Logi c
- Если Auth
user id
совпадает со столбцом user_id
в invoices
таблице - и если строка накладной не помечена как
paid
- , отметьте
end
и, если эта дата пропущена, перенаправьте пользователя на запрещенную страницу, в противном случае разрешите ему / ей выполнять свою деятельность.
Вопрос
В какой части моего кода я допустил ошибку?
Примечание * Столбец end
равен date
, а не dateTime
Может ли это быть проблемой?