用户未连接时重定向登录

时间:2017-04-20 14:09:20

标签: laravel

当我想访问我的应用程序中的页面时,如果我没有登录,我会收到例外

  

ec75fc198343b0a46e649467428bd2d5f829caf1.php第49行中的ErrorException:   试图获得非对象的属性

我应该制作路由中间件组吗?

我希望当我没有记录该应用程序将我直接重定向到登录表单而不显示此错误消息时,我想访问这些页面!

有人知道怎么做吗?

3 个答案:

答案 0 :(得分:1)

为负责呈现页面的操作启用auth中间件。在Laravel中有多种方法可以实现这一目标。以下是其中一些:

在特定操作的路线文件中

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

或流利的相同的东西

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

在一组操作/页面的路径文件中

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

在控制器中

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 :(得分:1)

编辑你的Kernel.php并将其添加到最后的受保护的$ routeMiddleware部分:

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

然后在您的路线中,您可以使用此“auth”来检查用户是否已登录。

例如:

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

如果您没有中间件或有任何问题,请按照https://laravel.com/docs/5.4/authentication

进行操作

答案 2 :(得分:0)

在路线中包含中间件。

Route::get('/Demo','DemoLine@index')->middleware('auth');