Laravel

フレームワークのインストールまではコピペでなんとなく環境構築出来たけれど、「それからどうすれば良いの?」を解決する記事です。

この記事を書いておけば誰かにLaravelに関して聞かれても「この記事を見てね!」でおっけーになるかな。

 

条件

  • Laravelバージョン5.7
  • Laravel環境構築済
  • DBサーバ構築済
  • DBサーバにテーブルとレコードがある

 

この記事の対象

  • PHPとクラスがわかる
  • Laravelは初めて

 

フレームワークのいわゆるMVCの流れはこんなの

MVC

流れ

  • ルーティング→ Controller → Model → Controller → View
  1. ルーティングで処理の行き先を決めて後は図の通りの流れになります。
  2. ControllerはURLから処理を振り分ける
  3. Modelは処理のみを行いControllerに渡す
  4. ControllerはViewに渡す
  5. Viewは表示のみ行う

大まかなMVCの流れはこうなります。

この他にLaravelにはRequestやMiddlewareなどといった概念があるよ、それはMVCをこの記事で覚えてから。フレームワーク毎の深堀りは余裕が出来たら覚えれば良いと思うんだ。

 

DBに接続する.envを設定しよう

 

 

 

レイアウトを作成しよう

表示する共通パーツといったひな形を作っていくよ

 

どんなファイルがあるかな?見てみようね

こうなっているので、

 

「layouts」ディレクトリを作成しよう

 

ひな形ファイル「layout.blade.php」を作成しよう

 

 

 

パーツ格納ディレクトリ「partials」を作成しよう

 

ヘッダーファイルの作成

 

フッターファイルの作成するよ

これを記述すると「俺の城」感が出るからおすすめだね。

 

 

 

 

 

Modelを作成しよう

Sampleモデルを作成します

プロジェクトのディレクトリに移動して・・・

 

appディレクトリがごちゃごちゃしないようにModelを格納するModelsディレクトリを作るよ!

 

“ここ”で君の中に眠るartisanを解き放て!

凄い力だ、無からSampleモデルのひな形を作れてしまうなんて。

 

Sampleモデルのひな形が作成されているのを確認したら編集しようね

 

解説

 

上記は下記クエリと同じ意味だよ。

直接クエリを書くことも出来るけれどLaravelのフレームワークの作法に従って記述するとLaravel側でSQLインジェクションといった罠から守り、コーディングする人のセキュリティを担保してくれるんだ!

そうだね、直接クエリを叩き込むことでしか実装出来ないSQLといったものもあると思う、そういう場合は慎重に。通常は可能な限りLaravelの作法に従った方が安心だ。

 

この最後の記述はページャを後で表示させるのに必要なんだ。

頭の片隅に覚えておいてね。

 

 

コントローラを作成しよう

プロジェクトのディレクトリに移動して・・・

 

勝負は今! “ここ”で決める、artisan!

これぞ天意、Sampleコントローラのひな形が創造された。

 

indexを表示させるActionのindex()関数を設定しよう

動作

  1. Sampleコントローラのアクションであるindex()が発動
  2. Sampleモデルで記述したgetList()関数を発動させる
    →レコードを根こそぎ取得する
  3. Viewに$items変数として抱え込んだままsample/index.blade.phpにページ遷移させるよ

 

 

ビューを作成しよう

View用のsampleディレクトリを作るよ

 

index.blade.phpを作成しよう、index.phpじゃないから気をつけて。

 

記述の解説

下記ならforeachでsamplesテーブルのsample_idを取得する

 

“sample_id”の部分は表示したいレコードのカラム名と対応させてね!

 

ページャの表示

これはページャを表示させるんだ!この一行だけで良いんだよ、凄いね!

 

ルーティングの設定をしよう

 

http://IPアドレス/sample/

にアクセスするとSampleControllerクラスのindex()関数が発動することを意味するんだ。

 

 

さぁ!表示の確認をしよう

うまくいくとページャつきのBootstrapで綺麗に装飾された素敵な画面が待っているはずさ!

http://IPアドレス/sample/

 

ここまで動作させればフレームワークなしでPHPの掲示板が作れる君ならもう十分な気がするよ。同じように編集や削除といった機能を作っていくだけだよ、それが終わったらLaravelに実装されている様々な機能、ライブラリを組み合わせて君だけのオリジナルシステムが秒速で作れるんだ。わくわくするね!

お疲れ様です。

 

タグ:
金広優
この記事を書いた人:金広優

システムガーディアン爆弾処理班。アクセス負荷対策やNginxへの移行案件が多いこの頃。IBM Cloud、AWSなどを扱ったクラウド、オフィスや商業施設のネットワーク構築案件が多くなっています。