Laravel 5路线无法正常工作

问题描述 投票:0回答:1

我正在从Laravel 4.2升级到5.4,我不明白为什么转换的路由不适用于URL:http:// {domain} /admin/page/provider.home

以下是Laravel 4.2中的相关细节:

Route::filter('provider_admin', function()
{   
    // Specific logic to potentially redirect to a specific page
}

Route::group(array('prefix' => 'admin/page'), function()
{
    Route::get('/{page}', array( 'before' => 'provider_admin', 'as' => 'admin_page', 'uses' => 'Frozennode\Administrator\AdminController@page' ));
    Route::get('/{page}/{id}', array( 'before' => 'provider_admin', 'as' => 'admin_page', 'uses' => 'Frozennode\Administrator\AdminController@page' ));
});

在Laravel 5.4中,过滤器已经转移到中间件,所以我有以下内容:

ProviderAdmin.php

namespace App\Http\Middleware;

use Closure;
use Illuminate\Support\Facades\Auth;

class ProviderAdmin
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @param  string|null  $guard
     * @return mixed
     */
    public function handle($request, Closure $next, $guard = null)
    {
        // Specific logic to potentially redirect to a specific page
        return $next($request);
    }
}

在web.php里面

// Route::middleware('provider_admin')->prefix('admin/page')->group(function () 
Route::group(['prefix' => 'admin/page', 'middleware' => 'provider_admin'], function () {
{
    Route::get('{page}', ['as' => 'admin_page', 'uses' => '\Frozennode\Administrator\AdminController@page' ]);
    Route::get('{page}/{id}', ['as' => 'admin_page', 'uses' => '\Frozennode\Administrator\AdminController@page' ]);
    die('ROUTE NOT FOUND');
});

kernel.php

'provider_admin' => \App\Http\Middleware\ProviderAdmin::class,

请求进入组,但与Laravel 4.2不同,它不会进入中间件,而是以“ROUTE NOT FOUND”结束。我错过了哪些其他基本问题,显然是在Laravel 5路由中引入的?

php laravel routes laravel-5.4
1个回答
0
投票

试试这个

Route::group(['prefix' => 'admin/page', 'middleware' => 'provider_admin'], function () {
     Route::get('{page}','\Frozennode\Administrator\AdminController@page')->name('admin_page');
     Route::get('{page}/{id}','\Frozennode\Administrator\AdminController@page' )->name('admin_page_by_id');
     die('ROUTE NOT FOUND');
});
© www.soinside.com 2019 - 2024. All rights reserved.