В моем приложении Laravel у меня есть файл маршрута в каталоге app/HTTP. Могу ли я иметь другой файл маршрута, как у меня другие файлы контроллера?

Если это возможно, как я могу перенаправить URL-адреса на каждый файл? Может ли кто-нибудь привести мне пример, чтобы я мог лучше это понять?

0
fighter 30 Дек 2015 в 15:02

2 ответа

Лучший ответ

Ага, можно!

Сначала создайте новый файл (назовем его «other-routes.php») в каталоге app / Http. Мы вернемся к этому на следующем шаге.

Шаг второй: перейдите к вашему файлу app/Providers/RouteServiceProvider.php.

Перейдите к методу map (показан ниже)

/**
 * Define the routes for the application.
 *
 * @param  \Illuminate\Routing\Router  $router
 * @return void
 */
public function map(Router $router)
{
    $router->group(['namespace' => $this->namespace], function ($router) {
        require app_path('Http/routes.php');
    });
}

А теперь посмотрите, где находится файл app/Http/routes.php? Дублируйте эту единственную строку кода и измените ее на новый файл (не забудьте также сослаться на старый!)

Если бы я это сделал, это выглядело бы так:

/**
 * Define the routes for the application.
 *
 * @param  \Illuminate\Routing\Router  $router
 * @return void
 */
public function map(Router $router)
{
    $router->group(['namespace' => $this->namespace], function ($router) {
        require app_path('Http/routes.php');
        require app_path('Http/my-new-routes-file.php');
    });
}

Теперь просто добавьте маршрут в ваш новый файл маршрутов, проверьте его, чтобы убедиться, что он отвечает должным образом, и если это так, вы готовы к работе!

Надеюсь, это помогло.

2
CoderLeo 30 Дек 2015 в 13:14

Вот еще один хороший пример того, как у вас могут быть разные классы маршрутов:

https://github.com/StyleCI/StyleCI/tree/master/app/Http/Routes

И вы можете отобразить это так -

https://github.com/StyleCI/StyleCI/blob/master/app/Foundation/Providers/RouteServiceProvider.php#L80

0
Ayo Akinyemi 30 Дек 2015 в 13:49