Laravel 5路线无法正常工作

时间:2017-05-12 02:23:31

标签: php laravel routes laravel-5.4

我正在从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路由中引入的?

1 个答案:

答案 0 :(得分: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');
});