質問させてください。
今 Laravel でサイトを構築をしているのですが、用語集のような多数の静的ページをルーティングさせる良い方法が分からず困っております。
例えばビューが下記のような構成だったとします。
resources/ └ views/ └ glossary/ ├ index.blade.php // 用語集トップ ├ a/ │ ├ apple.blade.php │ ├ almond.blade.php │ └ avocado.blade.php ├ b/ │ ├ banana.blade.php │ ├ beef.blade.php │ └ bean.blade.php └ c/ ├ cherry.blade.php ├ cookie.blade.php └ chicken.blade.php 以下多数
各ページごとにルーティングを書くとすると下記のように長くなってしまうと思います。
php
1// routes/web.php 2 3// 用語集トップ 4Route::view('/glossary', 'glossary.index'); 5 6// A 7Route::view('/glossary/a/apple', 'glossary.a.apple'); 8Route::view('/glossary/a/almond', 'glossary.a.almond'); 9Route::view('/glossary/a/almond', 'glossary.a.avocado'); 10 11// B 12Route::view('/glossary/b/banana', 'glossary.b.banana'); 13Route::view('/glossary/b/beef', 'glossary.b.beef'); 14Route::view('/glossary/b/bean', 'glossary.b.bean'); 15 16// C 17Route::view('/glossary/c/cherry', 'glossary.c.cherry'); 18Route::view('/glossary/c/cookie', 'glossary.c.cookie'); 19Route::view('/glossary/c/chicken', 'glossary.c.chicken'); 20︙
そこで URL の各ページによって変わる部分をパラメータで受け取って、それをビュー名にすれば共通化できるかと思い下記を試してみたら何とか表示できました。
ただ、glossary.
のところや'.'
にドットが必要だったりして、なんとなく書き方がスマートじゃない気がしていて、URL から直接ビューを指定できるような方法を探しています。
あとできればアクセスする URL を/glossary/a/apple
ではなく/glossary/apple
にもしたいです。
php
1// routes/web.php 2 3// 用語集トップ 4Route::view('/glossary', 'glossary.index'); 5 6// その他のページ 7Route::get('/glossary/{id}/{name}', function($id, $name) { 8 return view('glossary.' . $id . '.' . $name); 9});
熟練者の皆様はもし静的ページがたくさんあった場合、どのようにルーティングを書かれているのでしょうか。もし良い方法がありましたらアドバイスいただけると助かります。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/04/17 20:57 編集