我试图定义访问某些视图的路由,但它不起作用:/
Route::group(['prefix' => 'messages'], function () {
Route::get('/', ['as' => 'messages', 'uses' => 'MessagesController@index']);
Route::get('create', ['as' => 'messages.create', 'uses' => 'MessagesController@create']);
Route::post('/', ['as' => 'messages.store', 'uses' => 'MessagesController@store']);
Route::get('{id}', ['as' => 'messages.show', 'uses' => 'MessagesController@show']);
Route::put('{id}', ['as' => 'messages.update', 'uses' => 'MessagesController@update']);
});
当我登录时,我总是被重定向到我项目的主视图(' /')。
如果我尝试以访客身份访问,例如:http://myproject.dev/messages我收到404错误!
我尝试在我的项目中添加的包是:https://github.com/cmgmyr/laravel-messenger
我已经将它安装在laravel 5.1的全新安装和它的工作上,但在我的项目中它并不起作用!
我的项目在MAMP PRO的当地。
使用命令php artisan route:list,我可以看到路由存在!
编辑:我的认证路线很糟糕! Route :: controller(' /',' Auth \ AuthController')不是一个好的解决方案!答案 0 :(得分:0)
要使用MessagesController,必须对用户进行身份验证。这意味着必须记录用户。这个想法是,如果用户没有登录,他必须重定向到登录页面。为此,您必须将auth中间件添加到Route ::组。 auth中间件将检测用户是否已登录,如果未记录,则将重定向到登录页面。
Route::group(['middleware' => 'auth', 'as' => 'messages.', 'prefix' => 'messages'], function () {
Route::get('', ['as' => 'index', 'uses' => 'MessagesController@index']);
Route::get('create', ['as' => 'create', 'uses' => 'MessagesController@create']);
Route::post('', ['as' => 'store', 'uses' => 'MessagesController@store']);
Route::get('{id}', ['as' => 'show', 'uses' => 'MessagesController@show']);
Route::put('{id}', ['as' => 'update', 'uses' => 'MessagesController@update']);
});
我认为这是错误
答案 1 :(得分:0)
我仍然无法评论,所以我会写一个答案。 我从来没有能够在Route的组中放置“root”路由。 Laravel需要的东西,你不能使用“/”或“”。 看到您的代码,我建议您使用资源视图。
Route::resource('messages', 'MessagesController');
它会生成所有路线。我希望它有所帮助。