#php #laravel
Вопрос:
так что это мой маршрут
Route::group(['prefix' => '{locale}'],function(){
Route::get('/','Room_randring_welcom@function0')->name('post')->middleware('setLocale');});
например, если я выбрал es на английском или любом другом языке, на который я хочу перейти
Route::group(['prefix' => '{locale}'],function(){
Route::get('/','Room_randring_welcom@function1')->name('post')->middleware('setLocale');});
**таким образом, я могу извлекать данные из другого файла JSON на другом языке **
Комментарии:
1. Зачем вам использовать другое действие контроллера? Это должно обрабатываться в контроллере, а не в маршрутах.
2. что вы пробовали до сих пор?
3. Вы можете сделать это с помощью редактирования
RouteServiceProvider
, скажите мне, если вы не знаете, как это сделать.4. Мохаммед Гамаль Эльдин я не знаю, как это сделать.
5. @SMI Мой контроллер выглядит так. Мне нужно условие,которое указывает, если lang, en выбрал чтение данных из этого файла JSON, иначе FR lang выбрал чтение данных из другого файла JSON2. ` `класс Room_randring_welcom расширяет контроллер { индекс общедоступной функции(){ $сообщения = file_get_contents(базовый путь(‘/storage/Rooms_Data.json’)); $сообщения = код json_decode($сообщения, true); $коллекция=сбор($сообщения); представление возврата(‘добро пожаловать’,[ ‘Уникальные идентификаторы пользователей’=>$коллекция, ]); } }«
Ответ №1:
Вы можете сделать это путем редактирования RouteServiceProvider
, вы найдете его по адресу root-app/app/Providers/RouteServiceProvider.php
Для Laravel
public function map()
{
$this->mapApiRoutes();
$this->mapWebRoutes();
$this->mapArRoutes(); // Add this line with local name or anything you want.
}
//add function with the new name in my case will be "mapArRoutes"
protected function mapArRoutes()
{
Route::middleware('web')
->prefix('ar') // Here choose a local do you want
->namespace($this->namespace)
->group(base_path('routes/ar.php')); // any name do you want
}
// You will find a function called "mapWebRoutes", edit it.
protected function mapWebRoutes()
{
// This is a default route you just need add perfix with anothoer local do you want
Route::middleware('web')
->prefix('en') // for example i added en
->namespace($this->namespace)
->group(base_path('routes/web.php'));
}
Затем в папку/каталог маршрутов добавьте новый файл, как в моем примере, это будет ar.php
добавьте все маршруты в файл, связанный с локальным.
Для Laravel >= 8
...
public function boot()
{
$this->configureRateLimiting();
$this->routes(function () {
Route::prefix('api')
->middleware('api')
->namespace($this->namespace)
->group(base_path('routes/api.php'));
// Add this lines
// Start
Route::middleware('web')
->prefix('ar') // Here choose a local do you want
->namespace($this->namespace)
->group(base_path('routes/ar.php')); // any name do you want
// This is a default route you just need add perfix with anothoer local do you want
Route::middleware('web')
->prefix('en') // for example i added en
->namespace($this->namespace)
->group(base_path('routes/web.php'));
// End
});
}
...
Надеюсь, это ясно.
Это все.