Таможенный маршрут, перекрывающий маршрут Новой - PullRequest
0 голосов
/ 05 февраля 2019

У меня проблема, я не могу решить, как использовать Nova в качестве бэкэнда для редакционного сайта.Я переименовал путь из / nova в / backend через конфигурацию, которая отлично работала.

Теперь мой интерфейс требует очень общей структуры маршрутизации, так как большая часть логики размещена в контроллере, что дает пользователю дополнительную гибкость.

Как только я добавляю эти маршруты к своим веб-маршрутам, бэкэнд переходит на 404. Очевидно, что мое второе правило совпадает с / бэкендом, и, поскольку в моей базе данных нет страницы с таким именем, происходит сбой.

Что я могу сделать, чтобы убедиться, что маршруты Nova анализируются первыми или что / / backend-запросы игнорируются моими маршрутами?

Laravel v5.7.Пробовал обычные трюки - php artisan config: clear, php artisan route: clear - а также добавление регулярного выражения в маршрут:

->where('seite', '^(?!backend).*$');

Текущий файл веб-маршрута:

Route::get('/', 'PagesController@frontPage');
Route::get('/{seite}/{zweit?}/{dritt?}', 'PagesController@anyPage');

/ backend должен обрабатываться Nova, а не моим пользовательским маршрутом.

Ответы [ 2 ]

0 голосов
/ 06 февраля 2019

Итак, в конце концов, именно это и помогло:

->where('seite', '^(?!backend).*$');

В моих предыдущих попытках заставить его работать, я сломал что-то еще.Я выполнил чистую переустановку Laravel в Nova, переместил файлы и добавил регулярное выражение, и теперь оно работает как шарм.

0 голосов
/ 05 февраля 2019

У меня была похожая проблема с общими слагами в моем файле маршрутов.Мне удалось ограничить шаблон для слагов буквенно-цифровыми символами (включая тире, дефисы и косые черты *), но исключить маршруты Nova (nova-api и nova-vendor), а также собственный путь Nova (backend).

Вот как выглядит файл routes/web.php:

Route::get('/{seite}', 'PageController@anyPage');

И шаблон в RouteServiceProvider в app/Providers/RouteServiceProvider.php:

public function boot()
{
    Route::pattern('seite', '^(?!backend|nova-api|nova-vendor).[a-zA-Z0-9-_\/]+$');

    parent::boot();
}

*)Обратите внимание, что этот шаблон также допускает слагов типа /seite/zweit/drei, как показано в вопросе выше.

...