【问题标题】:Laravel 5.2 - middleware authLaravel 5.2 - 中间件身份验证
【发布时间】:2017-02-26 09:46:15
【问题描述】:

我刚刚安装了 laravel 5.2,我创建了身份验证注册、登录和重置密码,但现在我想创建一个我的项目的索引,所有用户(也未登录)都可以访问。我试图创建

Route::get('/',HomeController@home');

但此视图仅对登录的用户启用。

我的路线

Route::auth();
Route::get('/home', 'HomeController@index');
// POST - FORM CREA 
Route::get('/crea-regalo', 'PostController@form');
Route::post('/crea-regalo', 'PostController@creaPost');
// LISTA ANNUNCI PRINCIPALE
Route::get('/', 'HomeController@home');

我的家庭控制器

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()
    {
        $posts = Post::orderBy('id','DESC');
        return view('home', compact('posts'));
    }

    public function home()
    {
        $posts = Post::all();
        return view('index', compact('posts'));
    }
}

如何创建所有用户都可以访问的视图路径?

感谢您的帮助!

【问题讨论】:

    标签: laravel laravel-5.2 middleware


    【解决方案1】:

    您好,编写单独的控制器来访问所有人的页面,因为您已经在构造函数中编写了身份验证中间件

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

    类似

    class GuestController extends Controller
    {
    
        public function __construct()
        {
    
        }
    
    
        public function home()
        {
            $posts = Post::all();
            return view('index', compact('posts'));
        }
    }
    

    在路线中

    Route::get('/home', 'GuestController@home');
    

    否则你可以这样做

    $this->middleware('auth', ['except' => ['home']]);
    

    这将能够访问所有的主页。在你的构造函数中添加这个

    public function __construct()
    {
       $this->middleware('auth', ['except' => ['home']]);
    }
    

    【讨论】:

    • 是的!谢谢!我将创建另一个控制器,是最好的选择!
    【解决方案2】:

    将您希望仅允许经过身份验证的用户的路由放入中间件身份验证中,如下所示:

    Route::group(['middleware' => ['auth']], function () {
      //your routes    
    })
    

    对于所有用户都可以访问的路由,将其放在上述组之外。

    【讨论】:

      猜你喜欢
      • 2016-08-05
      • 2017-03-15
      • 2018-11-22
      • 2016-07-09
      • 1970-01-01
      • 1970-01-01
      • 2016-04-20
      • 2017-07-03
      • 2016-04-18
      相关资源
      最近更新 更多