繁体   English   中英

路线不适用于我的laravel 5.1项目

[英]Route doesn't work on my laravel 5.1 project

我正在尝试定义访问某些视图的路由,但它不起作用:/

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')不是一个好的解决方案!

要使用MessagesController,必须对用户进行身份验证。 这意味着必须登录用户。 想法是,如果未登录用户,则必须将其重定向到登录页面。 为此,您必须将auth中间件添加到Route :: group。 身份验证中间件将检测用户是否已登录,如果未登录,它将被重定向到登录页面。

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

我认为这就是错误

我仍然无法评论,所以我会写一个答案。 我从来没有能够在Route的组中放置“root”路由。 Laravel需要的东西,你不能使用“/”或“”。 看到你的代码,我建议你使用资源视图。

Route::resource('messages', 'MessagesController');

它会生成所有路线。 我希望它有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM