ネビ活 | ネットビジネス生活

ネットxお金のスキルを作り、未来永劫豊かに暮らす事を目指すサイト

Laravel初心者が絶望するController,Blade,Routesの関係が図解でよく分かる!

更新日:

Laravel初心者が絶望するController,blade,routesの関係が図解でよく分かる!

Laravelを始めてみたものの、普通のPHPの書き方と違いすぎて、さっぱり分かんない。いろんな謎の用語が出てきて挫折しそうだよ。

 

あなたがもしLaravel初心者なら、同じ事を感じて頭を抱えてるところだと思います。

 

そう、普通のHTMLとPHPだったら、全部1ページのファイルにバーっと書けばOK、とってもシンプル、誰にでもサルワカです。

でも、Laravelの場合は、そうではなくて、基本的にはControllerとBladeという2つのファイルに書き分けて、さらにそれをRoutes(web.php)で振り分けるという謎の3分割構造になってます。なので、この構造が理解できるまでは、パソコンをぶん投げて「意味わかんねーよ!!」と泣き叫びたくなりますよね。

というわけで、LaravelのこのContollerとBladeとRoutesの3つの関係と使い方を初心者でもバッチリスッキリ分かるようにあなたに解説します!

これが分かると一気に使い方が分かってくるんで、挫折せずに済みますよ!

 

そもそもLaravelって稼げるの?独学?スクール?高給を稼ぐためにどうするべきか教えます。

Laravel初心者が絶望するController,Blade,Routesの関係

例えば、あなたが自分で、post1.htmlってファイルを作ったとします。

これをただ単にlaravel上で表示したい場合は、publicフォルダに入れて、アドレスバーに、
https://abc.com/post1.html のように入れれば、それがちゃんと表示されます。

しかし、実際はLaravelじゃそういう使い方はしないんです(汗)。

 

これはWordPressで考えてもらえばよく分かるはずです。

例えば、WordPressでもサーバーのpublicフォルダにpost1.htmlを入れれば、
https://abc.com/では、WordPressサイトが表示されるけど、
https://abc.com/post1.htmlにアクセスすれば、WordPressと関係なく、post1.htmlがそのまま表示されますよね。

これと同じ事です。

 

WordPressだったら、header.php, footer.php, post.php みたいなそれぞれのパーツを合体させて、全体のレイアウト(デザイン)を作ってます。

ちなみに、あなたが書いた記事は、データベース(Mysql)に文字だけ保存されていて、
このレイアウトに文字だけガシャっと毎回はめこまれるわけです。

 

で、Laravelも全く同じなんです。

blade.php(ブレード): 全体のレイアウト。HTMLが書かれていて、CSSやJavascriptなどもここで読み込む。表示部分。

Controller.php(コントローラー): データベースから必要な記事データを呼び出したり、新規記事、変更記事を保存させたりするのが仕事。さらに出したデータをbladeに渡す。

Routes(web.php): bladeとContorollerの2つで出来上がったページをどのURLで表示するかを決めている。

こんな感じなんです。

WordPressで例えるなら、

blade.php: index.php, hearder.php, footer.php, post.phpこういったものと同じ。実際の表示部分。

Controller.php: functions.phpに当たる部分。

Routes(web.php): パーマリンク設定みたいなもの。

こう考えていくと、イメージができてきませんか?

下図は実際にサイトにアクセスがあった時のイメージです。

LaravelのController,Blade,Routesの関係図

この図のような役割分担があるんです。

 

なんとなく、分かったでしょうか?ちょっとよく分からない?じゃあ、もう一つシンプルな図を。

laravelのblade,controller,routesの関係図1

 

nantara.blade.php っていうのが、nantara.htmlみたいなものって事でOK?
そういう認識で大丈夫だよ。
Neby
で、なんでじゃあ、そのコントローラーっていうのが必要なの?

 

たい焼きに例えると、ブレードは型なんだ。まず、店員のルート氏がお客さんのオーダーを聞く。で、ルートはたい焼き職人のコントローラー氏にオーダーを伝える。クリーム、チョコ、あんこなどをオーダーにそって実際に型(ブレード)に流し込んでいくのが、コントローラーの仕事なんだ。

ブレード自体はただの型(レイアウト)だから、そこに必要な文字や画像を選んで当てはめるのがコントローラーの仕事なんだよ。お客さんがPost123を見たかったら、123用のデータを。Post521を見たかったら、521のデータを当てはめる。それがコントローラー

Neby

 

なんとなく分かってきたよ。でもさ、bladeって例えばさ、post.blade.phpをpost.phpにしちゃダメなの?なんかbladeって付いてるからややこしいんだけど。
実は、bladeを抜いて、post.phpにしても、表示はできるし、普通のPHPコードは動くよ。ただ、laravel独自のコードが動かなくなっちゃうんだ。この仕様については、bladeの解説ページで詳しく教えるよ。
Neby
あと記事を書く時はどう書くの?文字を直接blade.phpに書くわけじゃないんでしょ?
記事のように、ページごとに内容が変わる文字については、サイト上にフォームを作って、フォームに書き込んで保存するんだ。こんなふうに↓

WordPressで使われてるテキストエディタのTinyMCEをBladeにセットする事も可能だよ。

フォームを送信すると、Controllerがその文字データをサーバーのデータベースに保存してくれるんだ。サイト上の定型文は、もちろんBladeにHTML使って直接書けばOKだよ。

Neby
そっか、Wordpressみたいに、テキストエリアと保存ボタンを作って、そこに書き込んで保存するのか。なるほど、分かってきたよ。

LaravelのController.phpとは?初心者向けにやさしく図入りで解説

 

Laravelのblade,controller,route,それぞれのフォルダの場所は?

最初に、Laravelはpublicフォルダにhtmlファイルを入れれば、それを表示する事が可能だと話しました。

ただ、実際は、publicフォルダにhtmlファイルを入れたりする必要は全くありません。それぞれ入れるべきフォルダが決まっていて、そこに入れれば、ちゃんと表示してくれます。

 

Laravel6を例に出すと、

Controller:app\Http\Controllersフォルダ内に入れます。

Blade:resources\viewsフォルダ内に入れます。

Routes:routes\web.php がルーティングをしてるファイルです。

それぞれをこのフォルダ(ディレクトリ)に入れる事で、正しく動き、表示されます。

 

Laravelを最低限動かすためには、この3つを使いこなす必要があります。
心配せずとも、実際に作ってみると、すぐ慣れます。

 

今後Laravelのサイトを作っていくに当たって、様々な用語が出てきますが、
その都度使っていく事で自然と覚えていけるので、安心してください。

より、詳しくそれぞれを知りたい場合はこちら

LaravelのController.phpとは?初心者向けにやさしく図入りで解説

Laravelのroutes(web.php)とは?超初心者向けに図解と実例でやさしく解説!

Laravelのblade.phpとは?普通の.phpと何が違う?初心者必須の知識!

 

ちなみに、あなたはなぜLaravelを学ぼうと思ったんですか?

稼げるって聞きました?

どれくらい上達すれば稼げるのか?本当にそんな高給を稼げるのかの現実を知ってますか?

詳しくは下の記事に本音の裏事情を書いてるので参考にしてくださいね。

Laravelって稼げるの?独学?スクール?高給を稼ぐためにどうするべきか教えます。

  • この記事を書いた人

Neby

本を毎日多読しつつ、資産運用、プログラミング、心理学、ネットビジネススキルを猛向上中。貧富の差が広がる5年後、10年後に安心生活を送るためのお金のリテラシー、スキル、資産を一緒に作っていきましょう。

-PHP Laravel入門

Copyright© ネビ活 | ネットビジネス生活 , 2020 All Rights Reserved.