我刚刚安装了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'));
}
}
如何创建所有用户都可以访问的视图路径?
感谢您的帮助!
答案 0 :(得分: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']]);
}
答案 1 :(得分:2)
将您想要仅允许经过身份验证的用户的路由放在中间件身份验证中,如下所示:
Route::group(['middleware' => ['auth']], function () {
//your routes
})
对于那些所有用户都可以访问的路由,将其放在上面的组中。