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

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

ただいまの
回答率

87.59%

laravelで複数ページに渡るwebアプリを作成したい

解決済

回答 2

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 2,214
退会済みユーザー

退会済みユーザー

前提・実現したいこと

laravelを使って簡単な計算アプリを作成したいです。
構成は
①トップページ(webアプリについての説明、HTML/CSSのみ)
②登録ページ(名前やアドレス等を入力するページ)
③ログインページ(アドレスとパスワードを入力するページ)
④数値を入力するページ
⑤計算結果のページ
です。

発生している問題

MVCについて説明を読んでも実際使ってみると不明点ばかりで困っています。

質問⑴
上記の①のページはviewの表示のみで成り立つのでモデルとコントローラーを使っていないのですが、この場合はそのままモデルとコントローラーを作成せずviewのみで良いのでしょうか?

質問⑵
このような、複数にページが渡るアプリをlaravelで作成する場合は、各ページ全てにそれぞれモデルとコントローラーとビューを用意する必要があるのでしょうか?

質問⑶
①〜⑤までのページの推移について、web.phpファイルでルーティングするのかaタグでリンクさせるのかが分かりません。

内容でわかりづらい点等あればすぐに修正します。ご回答いただけると有り難いです。

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

+1

そんなレベルの初心者がなんでLaravel使おうと思うのかが全く分からない。
使えるわけないのでネットの情報に騙されないように。

まずは素のPHPで作れるようになるのが先。

1 トップ
index.phpでファイルを作りhttp://example.com/で表示。

2 登録
register/index.phpで作りhttp://example.com/register/で表示。
1から2へのリンクは<a href="/register/">登録</a>
こう作っておけば後でLaravelで作り直したとしてもサイト構造はほぼ同じなので困らない。
他のページも同様。

MVCよりもルーティングの仕組みを知るほうが大事。
フレームワークのルーティングはindex.phpで表示してた頃からの歴史の積み重ねの上にできてるので
ここが分かってないと「Laravelのルーティングの使い方」を覚えるだけで終わってしまう。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

checkベストアンサー

0

質問⑴
上記の①のページはviewの表示のみで成り立つのでモデルとコントローラーを使っていないのですが、この場合はそのままモデルとコントローラーを作成せずviewのみで良いのでしょうか?

質問⑵
このような、複数にページが渡るアプリをlaravelで作成する場合は、各ページ全てにそれぞれモデルとコントローラーとビューを用意する必要があるのでしょうか?

作り次第。
如何様にも出来るので自分で決めて自分でやってください。

質問⑶
①〜⑤までのページの推移について、web.phpファイルでルーティングするのかaタグでリンクさせるのかが分かりません。
①から②もしくは③へ飛ばす場合はリンク、それ以外はルーティングなのかなとなんとなく考えていますが、どうすれば良いでしょうか。

ルーティングとリンクは全く別の概念。
まずは下記を読んで概要を理解してください。

上記記事から抜粋:
通信において「あ~、君はそこに行きたいのか~。じゃあ、取りあえずそっちの道を行きなよ」と、データさんの行くべき道を示してくれる仕組みのこと

つまりルーティングは
あくまで○○というURLでアクセスされたら××という処理を行う(コントローラを利用する)のを振り分ける役割を担っているものです。
そこに画面同士の画面遷移(推移って言葉間違えてます)は絡んできません。「処理を行う」部分でやることになるかもしれませんが、段階が違います。

ところでそもそも

静的ページと動的ページの意味は分かりますか?
例え動的ページであっても結局のところHTMLを画面出力をしているだけに過ぎません。
静的ページである場合、画面遷移はどう作ってますか?
画面に出ているのはあくまでHTMLです。ブラウザで画面表示して「ソースを表示」すると出てくるのはHTMLだけですよね。
ルーティングのルの字もでてきません。

ということでひとまず

まずはLaravel度外視して、自分でPHP書いて作ってみてはいかがでしょうか?
それができるかできないかでアドバイスの方向性が全く違います。
もしできるのであれば、それぞれの機能を置き換えていく作業になります。
ここは「こういう表現はフレームワークではどうするのか」を考えたり検証することになるのでフレームワークのマニュアルの出番ですね。

まとめ

フレームワークとはあくまで「枠組みを提供するもの」なので、その枠組みをどのように利用するか、利用できるかを考えるのはあくまで利用者の仕事になります。
つまり、フレームワークなしにしてもある程度自分で作っていく力が必要になります。

質問者さんは今どこまでできるのでしょうか?
Laravelのようなフレームワークはもちろんですが、PHP、HTML、JavaScript、CSSなど、
作りたいアプリケーションを作るための技術や知識はどこまで揃っているのでしょうか?

「フレームワーク」に限らず言語も全て道具に過ぎません。
「これを使えば○○ができる」というのはあくまで道具をきちんと使える前提であり、
自動的に勝手に出来上がるわけでもないです。
その言語やフレームワークの得手不得手も理解して道具として活用していく必要があります。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/01/23 18:01

    ご回答ありがとうございます。
    PHPは半年程独学し、いくつか作品も作ってみました。その上でlaravelに挑戦しようとやってみたのですが、これまで作るので精一杯だった為ルーティングやコントローラー等の概念?が頭の中になく、laravelのルールのようなものが一切分からないまま作ろうとしていました。回答者様の仰る通り、laravelを使うのはまだ早かったのかもしれません。

    質問⑴、⑵はまさにそれで、不要だけどlaravel上ではそうしないといけないルールなのかな?と思っていましたが、作り次第、とのことで解決しました。

    質問⑶については完全にルーティングについての間違えた解釈をしておりました。ルーティングについては貼って下さったリンクを読み、リンクとは全く違うものだと認識しました。もう少し調べて理解する必要がありそうですが、画面遷移(誤字のご指摘ありがとうございます。)については解決しました。

    静的ページでは画面遷移をaタグで書いていました。動的ページになると別の難しいもののように身構えてしまいますが、本質を理解できていないからなのだと思います。

    色々と詳しく教えて下さってありがとうございました。回答者様のお言葉を踏まえて、もう一度勉強し直し、まずはこれをPHPで作ってからlaravelで作り直してみようと思います。
    ありがとうございました。

    キャンセル

  • 2019/01/23 18:18

    理解が進んだようで何よりです。

    キャンセル

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

  • ただいまの回答率 87.59%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る