【问题标题】:How to Use Regex to Route Prefix in Laravel?如何在 Laravel 中使用正则表达式路由前缀?
【发布时间】:2019-04-04 07:04:33
【问题描述】:

简介:

我有一个带有动态前缀的自定义路由组:

Route::prefix('{nickname}')->group(function () {
    Route::get('/', function($nickname) {
        return view('profile');
    })->where(['nickname' => '[a-z]+']);

    Route::get('/edit', function($nickname) {
        return view('profile.edit');
    })->where(['nickname' => '[a-z]+']);
});

如您所见,在每条路线上,我通过正则表达式检查前缀的正确性。

注意:我也用->where(['nickname' => '[a-z]+'])来路由组,结果报错了。

错误信息:

在 null 上调用成员函数 where()

问题:

如何解决只检查一次的问题?

【问题讨论】:

    标签: laravel routing routes laravel-routing laravel-5.7


    【解决方案1】:

    使用这个希望它会帮助你

    Route::group(['prefix' => '{nickname}','where' => ['nickname' => '[a-z]+']],function ($nickname) {
    
        Route::get('/', function($nickname) {
            return view('profile');
        });
    
        Route::get('/edit', function($nickname) {
            return view('profile.edit');
        });
    
    });
    

    【讨论】:

    • 我先尝试了这个方法,然后问了一个问题。 @Shaielndra Gupta
    • 当前方法返回Call to a member function where() on null
    【解决方案2】:

    Route::group 具有 attributes 参数。可用参数之一是where

    Route::group([
        'prefix' => '{nickname}',
        'where' => ['nickname' => '[a-z]+']
    ], function ($nickname) {
        Route::get('/', function($nickname) {
            return view('profile');
        });
        Route::get('/edit', function($nickname) {
            return view('profile.edit');
        });
    });
    

    More about Laravel routes here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-06
      • 1970-01-01
      • 1970-01-01
      • 2014-06-13
      • 2016-10-10
      • 2018-06-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多