我在创建具有可选参数的laravel路由时遇到问题。以下实现了我想要的行为:
Route::get('/{locale}/donate', 'MyController@index')->name('donation.index');
Route::get('/donate', 'MyController@index')->name('donation.index');
URL /fr/donate
和/donate
都将加载MyController index()
。但是,当我这样做时:
Route::get('/{locale?}/donate', 'MyController@index')->name('donation.index');
/donate
将不会加载MyController index()
。如何将locale
参数设为网址中的可选段?
答案 0 :(得分:0)
可选参数只能位于网址末尾
Route::get('/donate/{locale?}', 'MyController@index')->name('donation.index');
答案 1 :(得分:0)
我认为无法将参数定义为可选。这是解决问题的其他方法。
第一
Create a subdomain for that
第二个将您的可选参数移到最后一个。现在您的路线将变成这样
Route::get('/donate/{locale?}', 'MyController@index')->name('donation.index');