Laravel 5.2 - 中间件授权

Laravel 5.2 - middleware auth

我刚刚安装 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'));
    }
}

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

感谢您的帮助!

你好写单独的控制器来访问所有页面,因为你已经在构造函数中编写了 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']]);
}

在中间件 auth 中将那些你想只允许经过身份验证的用户的路由如下:

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

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