Laravel промежуточное использование углерода - PullRequest
0 голосов
/ 07 апреля 2020

У меня есть промежуточное программное обеспечение, где мне нужно ограничить доступ пользователей, если определенная дата прошла, но функциональность не работает должным образом

Код

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

  1. Если Auth user id совпадает со столбцом user_id в invoices таблице
  2. и если строка накладной не помечена как paid
  3. , отметьте end и, если эта дата пропущена, перенаправьте пользователя на запрещенную страницу, в противном случае разрешите ему / ей выполнять свою деятельность.

Вопрос

В какой части моего кода я допустил ошибку?

Примечание * Столбец end равен date, а не dateTime Может ли это быть проблемой?

1 Ответ

1 голос
/ 07 апреля 2020

Попробуйте удалить это еще условие , не уверен, что это ваша проблема

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');
            }
        }
        return $next($request);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...