Lorsque je veux accéder à une page de mon application, je reçois une exception lorsque je ne suis pas connecté

ErrorException dans ec75fc198343b0a46e649467428bd2d5f829caf1.php ligne 49: tentative d'obtenir la propriété d'un non-objet

Dois-je créer un groupe middleware de routage?

Je voudrais quand je veux accéder aux pages quand je ne me connecte pas que l'application me redirige directement vers le formulaire de connexion sans me montrer ce message d'erreur!

Quelqu'un sait comment faire ça?

0
Mathieu Mourareau 20 avril 2017 à 17:09

3 réponses

Meilleure réponse

Activez le middleware auth pour l'action qui est responsable du rendu de la page. Il existe plusieurs façons d'accomplir cela dans Laravel. En voici quelques-uns:

Dans le fichier de routes pour une action particulière

Route::get('your/page', ['middleware' => 'auth', 'uses' => 'YourPageController@index']);

Ou la même chose couramment

Route::get('your/page', 'YourPageController@index')->middleware('auth');

Dans le fichier de routes pour un groupe d'actions / pages

Route::group(['middleware' => ['auth'], function () {
    Route::get('your/page', 'YourPageController@index');
});

Dans le contrôleur

class YourPageController extends Controller
{
    public function __construct()
    {
        $this->middleware('auth'); // you can pass an array of actions/methods that should not be covered by the auth middleware in a second parameter ['except' => 'someaction']
    }
}
1
peterm 20 avril 2017 à 14:28

Modifiez votre Kernel.php et ajoutez ceci à la partie protégée $ routeMiddleware à la fin:

 'auth' => \App\Http\Middleware\Authenticate::class,

Ensuite, dans vos itinéraires, vous pouvez utiliser cette 'auth' pour vérifier si l'utilisateur est connecté.

Par exemple:

Route::get('/example', 'YourController@getExample')->middleware('auth');

Si vous n'avez pas de middleware ou si vous rencontrez des problèmes, suivez cette https://laravel.com/docs /5.4/authentication

1
Onix 20 avril 2017 à 14:29

Incluez le middleware dans les routes.

Route::get('/Demo','DemoLine@index')->middleware('auth');
0
vishal pardeshi 20 avril 2017 à 18:20