【问题标题】:Laravel routes defined but shows empty pageLaravel 路由已定义但显示空白页面
【发布时间】:2019-09-23 16:12:26
【问题描述】:

在 web.php 路由文件中,我已经定义了路由组中的所有路由,但其中一些不起作用并显示空白页面,但在没有前缀的路由组之外定义时显示页面。

Route::group(['middleware' => 'auth', 'prefix' => 'admin'], function () {
    Route::get('/home', 'HomeController@index')->name('home');

    Route::resource('/category', 'CategoryController')->except(['destroy']);
    Route::get('/category/delete/{category}', 'CategoryController@destroy')->name('category.delete');

    Route::resource('/post', 'PostController')->except(['destroy']);
    Route::get('/post/delete/{post}', 'PostController@destroy')->name('post.delete');

    Route::get('/post/{post}/restore', 'PostController@restore')->name('post.restore');
    Route::get('/post/{post}/forceDelete', 'PostController@forceDelete')->name('post.forceDelete');
    Route::resource('/tag', 'TagController')->except(['destroy']);
    Route::get('/tag/{tag}/delete', 'TagController@destroy')->name('tag.destroy');

    Route::resource('user', 'UserController')->except(['destroy']);
    Route::get('/user/{user}/delete', 'UserController@destroy')->name('user.delete');
    Route::get('user/{user}/admin', 'UserController@makeAdmin')->name('user.admin')->middleware('admin');
    Route::get('/user/{user}/makeUser', 'UserController@makeUser')->name('user.user');
    Route::get('user/profile', 'ProfileController@index')->name('user.profile');
    Route::post('user/profile/update', 'ProfileController@update')->name('user.profile.update');
});

【问题讨论】:

  • 你能发布php artisan route:list命令的输出吗?
  • 使用上面的 artisan 命令并查看那些未列出的路线(如果有)
  • 已经尝试过(显示路由已定义)并且还使用了 route:clear
  • 你还应该确保你是因为auth中间件而被认证的,检查一下这条路线是否有效:Route::get('/home', 'HomeController@index')->middleware('auth')->name('home');如果你需要Laravel脚手架认证你需要运行php artisan make:auth跨度>
  • 路由列表显示有Auth中间件

标签: php laravel laravel-routing laravel-route


【解决方案1】:

您的路由相互冲突,使用Route::resource 生成的路由与您自己定义的路由enter code here 造成冲突。

这里可能有问题

Route::get('/user/{user}/delete', 'UserController@destroy')->name('user.delete');
Route::get('user/profile', 'ProfileController@index')->name('user.profile');

'profile' 可能被作为参数用户传递,抛出一个空白页。

【讨论】:

  • When the route name conflict happens, laravel throws a blank page 我无法重现此内容。你确定吗?
  • 另外,我没有看到任何路线名称冲突
  • 如果您可以分享哪些路线不起作用,那么我可能会对这个问题有更多的了解,我遇到过这样的问题,那是我的问题,我用详细信息更新了答案。
猜你喜欢
  • 2016-11-24
  • 2018-02-16
  • 2018-02-25
  • 1970-01-01
  • 2020-02-20
  • 2021-06-11
  • 1970-01-01
  • 2020-03-27
  • 2022-07-27
相关资源
最近更新 更多