首页 文章

Laravel 5.2 - 中间件认证

提问于
浏览
1

我刚安装了laravel 5.2,我创建了auth注册,登录和重置密码,但现在我想创建一个所有用户(也没有登录)可以访问的项目索引 . 我试图创造

路线::得到( '/',HomeController的@家“);

但是此视图仅对记录的用户启用 .

我的路线

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'));
    }
}

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

谢谢您的帮助!

2 回答

  • 2

    嗨写单独的控制器来访问所有页面因为你在构造函数中编写了auth中间件

    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    
    })
    

    并且对于那些所有用户都可以访问的路由将上述组放在一边 .

相关问题