VerifyCsrfToken, авторизация и попытка получить свойство необъекта - PullRequest
0 голосов
/ 24 июня 2019

Я возвращаюсь к старому проекту, и к домашней странице должен быть доступ при входе, если нет, вы будете перенаправлены на / login. Для этого я использую промежуточное программное обеспечение Auth, но при этом я получаю следующую ошибку (см. Нижнюю часть поста с ошибкой и полной ошибкой на imgur).

Я проверил свой middleware, но на самом деле его нет, я также проверил свой код, чтобы убедиться, что я не использую странную группу middleware или что-то еще, и я не могу найти ошибку на данный момент.

В моем HomeController.php, если я уберу использование Auth middleware, сценарий продолжится (но у меня еще одна ошибка, о ролях и разрешениях, что нормально)

    public function __construct()
    {
        $this->middleware('auth');
    }

Обычно я ожидаю перенаправления, но вместо этого получаю эту ошибку: Попытка получить свойство необъекта

Полная ошибка: См. Это

Я упомяну, что у меня есть эта ошибка на КАЖДОЙ странице, требующей аутентификации, а не на той, на которой нет, она не ограничивается моей HomeController

Спасибо!

РЕДАКТИРОВАТЬ: Вот полный контроллер, где я использую промежуточное программное обеспечение (даже если у меня есть проблема в другом месте)

<?php

namespace App\Http\Controllers;

use App\Sinistre;
use App\Appointment;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;

class HomeController extends Controller
{
    /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function __construct()
    {
        $this->middleware('auth');
    }

    /**
     * Show the application dashboard.
     *
     * @return \Illuminate\Http\Response
     */
    public function index(Request $request)
    {
        $sinistres = null;
        if (Auth::user()->hasRole('admin')) {
            $sinistres = Sinistre::all();
        } else {
            $sinistres = Auth::user()->sinistres;
            foreach(Auth::user()->societe AS $societe){
                $sinistres = $sinistres->merge($societe->sinistre);
            }
        }

        $sinistres = $sinistres->unique();

        $appointments = Appointment::orderBy('date_start', 'desc')->with(['sinistre', 'sinistre.user'])->take(8)->get()->reverse();
        return view('pages.home', [
            'sinistres' => $sinistres,
            'appointments' => $appointments,
        ]);
    }
}

1 Ответ

0 голосов
/ 24 июня 2019

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

    if(Auth::user()){
     //Your Code
    }else{
     return redirect('/');
    }
...