Как использовать Regex для маршрутизации префикса в Laravel? - PullRequest
0 голосов
/ 31 октября 2018

Пояснение:

У меня есть группа пользовательских маршрутов с динамическим префиксом:

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

Вопрос:

Как решить проблему с проверкой только один раз?

Ответы [ 2 ]

0 голосов
/ 31 октября 2018

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

Подробнее о Маршруты Laravel здесь

0 голосов
/ 31 октября 2018

используйте эту надежду, это поможет вам

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

});
...