deadloop
@deadloop
Активно осваиваю PHP

Как правильно оформить проверку в middleware?

Мне нужно создать проверку, id авторизованного пользователя совпадает с user_id в таблице БД. Моя реализация не работает. В чем я ошибся?

<?php

namespace App\Http\Middleware;

use App\Models\Pass;
use Closure;
use Auth;
use Illuminate\Http\Request;

class CanEdit
{
    public function handle($request, Closure $next)
    {
        $user = Auth::user()->id;
        $editor = Pass::where('user_id', $user);
        if ($user == $editor) {
            return $next($request);
        }

        return redirect('home')->with('error','You have not access');
    }
}
  • Вопрос задан
  • 88 просмотров
Пригласить эксперта
Ответы на вопрос 1
delphinpro
@delphinpro Куратор тега Laravel
frontend developer
$userId = Auth::user()->id; // Переменную плохо назвали. Это ID, а не пользователь
$editor = Pass::where('user_id', $userId)->first(); // А здесь редактор, не ID. Может быть NULL если не найдено.
// Нужно проверить, нашлась ли запись и совпали ли ID
//if ($editor && $userId == $editor->user_id) {        }

// Но исходя из условия запроса, если запись нашлась, то ID уже совпали
// Значит достаточно такой проверки:
if ($editor) {        }
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы