首页 > 解决方案 > Laravel 可选参数,路径中带有斜线

问题描述

我无法创建一个具有可选参数的 laravel 路由。以下实现了我想要的行为:

Route::get('/{locale}/donate', 'MyController@index')->name('donation.index');
Route::get('/donate', 'MyController@index')->name('donation.index');

两个网址/fr/donate/donate将加载MyController index(). 但是,当我这样做时:

Route::get('/{locale?}/donate', 'MyController@index')->name('donation.index');

/donate不会MyController index()加载. 如何使locale参数成为 url 中的可选段?

标签: laravel

解决方案


在我看来,没有办法将参数定义为可选。以下是解决您问题的其他方法。

第一的

Create a subdomain for that

其次将您的可选参数移到最后。现在您的路线将如下所示

Route::get('/donate/{locale?}', 'MyController@index')->name('donation.index');

推荐阅读