Я новичок в Laravel, и я сделал что-то подобное для своих маршрутов:
Route::get('/fundraisers/{id}', 'FundraiserController@index')->name('fundraisers.list');
Route::get('/{locale}/fundraisers/{id}', 'FundraiserController@indexLang')->name('fundraisers.list.lang')->where(['locale'=>$loc=['fr,'zh']);
И затем мне нужно два метода в моем контроллере:
index($id) {
// Load record by id and language == 'en'
}
indexLang($locale, $id) {
// Load record by id and language == $locale
}
I в другом месте читайте, что нет никакого способа явно написать два правила маршрута, если я хочу, чтобы Engli sh url был единственным исключением, чтобы не появляться в URL.
Теперь, когда я пишу маршрут, подобный этому:
Route::get('/fundraisers/{id}', 'FundraiserController@indexLang')->name('fundraisers.list');
В результате получается, что $locale
- это число, а $id
равно нулю в indexLang
. Есть ли способ сделать что-то вроде присвоения {id}
для $_REQUEST['id']
и иметь $_REQUEST['locale']
неустановленным? Как, например, с правилами .htaccess
переписывания URL-адресов? Таким образом, я могу избавиться от index($id)
, поскольку это избыточное исключение indexLang