結論
- RouteServiceProvider.phpのmapApiRoutesメソッドのprefixをnullにする。
69 protected function mapApiRoutes()
70 {
71 Route::group([
72 'middleware' => 'api',
73 'namespace' => $this->namespace,
74 'prefix' => null, // ココ!!
75 ], function ($router) {
76 require base_path('routes/api.php');
77 });
78 }
79 }
frameworkにあらかじめある、routes/api.phpをつかいたい
- api.php名前ついてるから、apiはこれつかうよね普通
- ところが、URLは/apiが必ず固定される、http://localhost/api/hogehoge てな感じ
route.php
- https://hogehgoe.com//hoge みたいになって泣きました。
- 結局Laravelのソースコードを追いかけると
- Illuminate/Routing/Router.php
503 /**
504 * Prefix the given URI with the last prefix.
505 *
506 * @param string $uri
507 * @return string
508 */
509 protected function prefix($uri)
510 {
511 return trim(trim($this->getLastGroupPrefix(), '/').'/'.trim($uri, '/'), '/') ?: '/'; // これだから
512 }
426 /**
427 * Get the prefix from the last group on the stack.
428 *
429 * @return string
430 */
431 public function getLastGroupPrefix()
432 {
433 if (! empty($this->groupStack)) {
434 $last = end($this->groupStack);
435
436 return isset($last['prefix']) ? $last['prefix'] : ''; // これで
437 }
438
439 return '';
440 }
- prefixの行を消すのではなくて、nullにしてやれば思い通りのURL体系になります。