質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

1155閲覧

多数の静的ページをビューで表示する効率良いルーティングの書き方が知りたい

takopo

総合スコア484

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2021/04/17 10:37

編集2021/04/17 10:47

質問させてください。
今 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});

熟練者の皆様はもし静的ページがたくさんあった場合、どのようにルーティングを書かれているのでしょうか。もし良い方法がありましたらアドバイスいただけると助かります。

よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

そんな数を静的ページで作ってるのが間違いでDB使う場面。

投稿2021/04/17 10:53

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

takopo

2021/04/17 20:57 編集

ご回答ありがとうございます。 なるほど静的ページをデータベースから作るのですね。 データベースはユーザーからの入力値を格納するためのものという先入観があったので驚きました。とても参考になります。 具体的な方法についてこれからちょっと調べてみたいと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問