Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2013
    Messaggi
    15

    Laravel 5.5 - Middleware

    Ciao a tutti,
    sto creando un blog con laravel 5.5 ma ho un problema:

    ho creato un pannello di controllo ed una pagina di login per amministrare il blog, quando inserisco l'url del pannello di controllo senza aver effettuato l'accesso con l'utente amministratore ricevo l'errore Trying to get property of non-object.

    La riga di codice evidenziata è questa:
    Codice PHP:
    <?php echo e($currentUser->first_name ' ' $currentUser->last_name); ?>

    Ho letto sul web che è necessario modificare il file app/Http/Middleware/Authentication.php per controllare se l'accesso sia già stato effettuato o meno e riportare l'utente alla pagina di login per il secondo caso.
    Nella versione di laravel che sto utilizzando il file Authentication.php non è presente nella cartella Middleware.
    Come posso risolvere con la versione che sto utilizzando? Grazie in anticipo.

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Ti parlo di Laravel 5.4, sul 5.5 non ci ho lavorato e so che qualcosa è cambiata.
    Il file si chiama Authenticate.php ed esiste se stai usando il sistema di autenticazione "built-in" di Laravel che viene impostato col comando "artisan make auth", in caso contrario il sistema di autenticazione di Laravel non è attivo.
    Stai usando il sistema di autenticazione di Laravel, uno fatto da te o una libreria di terze parti?

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2013
    Messaggi
    15
    Ciao, grazie per la risposta.

    In realtà avevo già generato il sistema per l'autenticazione sul mio progetto utilizzando il comando che hai scritto. Per scaramanzia tramite composer ho provato a creare un nuovo progetto laravel e anche lì manca in file in questione.

    Sto utilizzando il sistema di laravel, ti posto il codice:

    Web.php

    Codice PHP:
    Route::get('control''MainController@getIndex');

    Route::get('login''MainController@getLogin');

    Route:post('login/try''MainController@postLogin');

    Route::get('control/logout''MainController@getLogout'); 


    MainController

    Codice PHP:
    use Auth;

        public function 
    getIndex()
        {
            return 
    view('backend.dashboard');
        }

        public function 
    getLogin()
        {
            return 
    view('login');
        }

        public function 
    postLogin(Request $request)
        {
            if(
    Auth::attempt(['email' => $request->input('email'), 'password' => $request->input('password')]))
            return 
    redirect('control');
            else
            return 
    redirect('login');
        }

        public function 
    getLogout()
        {
            
    Auth::logout();
            return 
    redirect('login');
        } 
    Nel mio progetto c'è un file chiamato Authenticate.php presente in vendor\laravel\framework\src\Illuminate\Auth\Middl eware dove all'interno c'è questo codice:

    Codice PHP:
    public function handle($requestClosure $next, ...$guards)
        {
            
    $this->authenticate($guards);
            return 
    $next($request);
        } 

    Questo invece dovrebbe essere il codice del file presente nelle versioni precedenti di laraver:

    Codice PHP:
    public function handle($requestClosure $next)
    {
        if (
    $this->auth->guest())
        {
            if (
    $request->ajax())
            {
                return 
    response('Unauthorized.'401);
            }
            else
            {
                return 
    redirect()->guest('auth/login');
            }
        }

        return 
    $next($request);


  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2013
    Messaggi
    15
    Up! Sto facendo delle richerche sul web ma non ho trovato ancora nulla.Dite che mi conviene utilizzare laravel 5.4 per il momento?

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.