gpt4 book ai didi

php - 在 Laravel 中使用 auth 保护所有管理员/路由

转载 作者:可可西里 更新时间:2023-10-31 22:40:03 25 4
gpt4 key购买 nike

我是 laravel 的新手,正在为我的第一个应用程序设置管理面板授权。我当前设置文件的方式是:

controllers/
admin/
dashboard.php
settings.php
non-admin-controller1.php
non-admin-controller1.php
views/
admin/
dashboard.blade.php
login.blade.php
template.blade.php
non-admin-view1.php
non-admin-view1.php
non-admin-view1.php

...这些是我的路线

Route::get('admin/login', function()
{
return View::make('admin.login');
});

Route::get('admin/logout', function()
{
return Auth::logout();
return Redirect::to('admin/login');
});

Route::post('admin/login', function()
{
$userdata = array('username' => Input::get('username'),
'password' => Input::get('password'));

if (Auth::attempt($userdata))
{
return Redirect::to('admin');
}
else
{
return Redirect::to('admin/login')->with('login_errors',true);
}
});

Route::controller('admin.dashboard');

Route::get('admin', array('before' => 'auth', function() {
return Redirect::to_action('admin@dashboard');
}));

Route::filter('auth', function()
{
if (Auth::guest()) return Redirect::to('admin/login');
});

当我转到/admin 时,我被重定向到 admin/login 并被要求登录,这正是我需要它工作的方式。登录后,我被重定向到管理/仪表板,那里看起来也不错。但是我有两个问题。

  1. 当我转到管理/注销时,我已注销但看到一个空白页面(它没有重定向到管理/登录)

  2. 注销后,如果我转到管理/仪表板,我会收到错误消息

Error rendering view: [admin.dashboard]

Trying to get property of non-object

我在这里做错了什么?我做对了什么?为管理员创建一个单独的包是否更有意义?谢谢!

最佳答案

所以我能够以稍微不同的方式解决我的问题。我在 controllers 文件夹的根目录中创建了一个(基础)Admin_Controller,在执行之前使用一个调用 auth 过滤器的构造函数:

class Admin_Controller extends Base_Controller {

public function __construct()
{
$this->filter('before', 'auth');
}

}

然后让/controllers/admin 中所有与管理相关的 Controller 扩展 Admin_Controller 并调用父构造函数:

class Admin_Dashboard_Controller extends Admin_Controller {

public function __construct()
{
parent::__construct();
}

public function action_index()
{
return View::make('admin.dashboard');
}

}

这可能不是最 Eloquent 解决方案,但它可以完成工作!

关于php - 在 Laravel 中使用 auth 保护所有管理员/路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15823161/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com