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

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

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

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

MVC

MVC(Model View Controller)は、オブジェクト指向プログラミングにおけるモデル・ビュー・コントローラーの総称であり、ソフトフェア開発で使われている構築パターンとしても呼ばれます。

Q&A

解決済

2回答

1271閲覧

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

退会済みユーザー

退会済みユーザー

総合スコア0

Laravel

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

MVC

MVC(Model View Controller)は、オブジェクト指向プログラミングにおけるモデル・ビュー・コントローラーの総称であり、ソフトフェア開発で使われている構築パターンとしても呼ばれます。

0グッド

0クリップ

投稿2019/01/22 14:04

編集2019/01/23 04:17

前提・実現したいこと

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

発生している問題

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

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

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

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

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

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

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

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

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

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

guest

回答2

0

そんなレベルの初心者がなんで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のルーティングの使い方」を覚えるだけで終わってしまう。

投稿2019/01/22 15:14

kawax

総合スコア10377

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

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

0

ベストアンサー

質問⑴

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

質問⑵

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

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

質問⑶

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

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

上記記事から抜粋:

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

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

ところでそもそも

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

ということでひとまず

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

まとめ

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

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

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

投稿2019/01/23 01:28

m.ts10806

総合スコア80850

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

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

退会済みユーザー

退会済みユーザー

2019/01/23 09:01

ご回答ありがとうございます。 PHPは半年程独学し、いくつか作品も作ってみました。その上でlaravelに挑戦しようとやってみたのですが、これまで作るので精一杯だった為ルーティングやコントローラー等の概念?が頭の中になく、laravelのルールのようなものが一切分からないまま作ろうとしていました。回答者様の仰る通り、laravelを使うのはまだ早かったのかもしれません。 質問⑴、⑵はまさにそれで、不要だけどlaravel上ではそうしないといけないルールなのかな?と思っていましたが、作り次第、とのことで解決しました。 質問⑶については完全にルーティングについての間違えた解釈をしておりました。ルーティングについては貼って下さったリンクを読み、リンクとは全く違うものだと認識しました。もう少し調べて理解する必要がありそうですが、画面遷移(誤字のご指摘ありがとうございます。)については解決しました。 静的ページでは画面遷移をaタグで書いていました。動的ページになると別の難しいもののように身構えてしまいますが、本質を理解できていないからなのだと思います。 色々と詳しく教えて下さってありがとうございました。回答者様のお言葉を踏まえて、もう一度勉強し直し、まずはこれをPHPで作ってからlaravelで作り直してみようと思います。 ありがとうございました。
m.ts10806

2019/01/23 09:18

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問