LoginSignup
71
16

はじめに

Laravel は何ですか??
Laravel は、MVC Web アプリケーションを開発するために PHP で書かれた無料のオープンソース Web アプリケーション フレームワークです。Laravel は、拡張可能な PHP ベースの Web サイトや Web アプリケーションを大規模に作成するのに役立つ使いやすい Web フレームワークです。

MVC ARCHITECTURE

Laravel フレームワークは、Web アプリを作成するための MVC アーキテクチャ パターンを促進します。 このパターンは、スケーラブルで保守可能な Web アプリを構築する方法を指定する一連のルールを指定します。
Laravel MVC パターンは、開発者が非構造化コードに秩序と一貫性をもたらすのに役立ちます。 MVC アプローチにより、小規模および大規模な Web アプリケーションの開発も容易になります。

MVCの理解

M = 「Model(モデル)」
V = 「View(ビュー)」
C = 「Controller(コントローラ)」  をそれぞれ意味しています。
image.png

Model(モデル)

「モデル」は、コード ベース内の現実世界のインスタンスまたはオブジェクトを表現したものです。 データベースへのアクセス(登録/更新/削除/検索の実行)や、データの加工等々、データにまつわる処理全般を請け負うのがModelです。
Modelのファイル名は必ず最初の一文字は大文字で作るのがルールとなります。
Laravel では、モデルは通常、データベース内の列と一致するプロパティを持つクラスです。
たとえば、データベースでは、イベントには次のプロパティがあります。

  • 名前(name): イベントの名前
  • 日付(date): イベントの日付
  • 開始時間 (time): イベントの開始時間
  • リンク(link): イベントリンク

以下のようにModelファイル内でEventクラスを宣言します。
イベント モデルに、以下に示すように $fillable プロパティを追加します。

Event.php

class Event extends Model 
{
	protected $fillable = [
		'name',
		'date',
		'time',
		'link',
	];

View(ビュー)

「ビュー」は、ユーザーがアプリケーションと対話するためのインターフェイスを表します。 Webアプリケーション開発には動的なWebサイトを表示することが必須となります。Modelが処理したデータを、どのような形で表示するかをViewで指定します。Laravelでは、すべてのビューはresources/viewsディレクトリに保存されます。
「イベント」ビューを作成しましょう。 プロジェクトの resource/views ディレクトリに viewevent.blade.php ファイルを作成します。 そこに以下を追加します。

viewevent.blade.php

<!doctype html>
<html lang="{{ app()->getLocale() }}">
<head>
    <title>View Products | Product Store</title>
    <!-- Styles etc. -->
</head>
<body>
    <div class="flex-center position-ref full-height">
        <div class="content">
            <h1>Here's a list of available products</h1>
            <table>
                <thead>
                    <td>Name</td>
                    <td>Date</td>
                    <td>Time</td>
                    <td>Link</td>
                </thead>
                <tbody>
                    @foreach ($allProducts as $product)
                        <tr>
                            <td>{{ $event->name }}</td>
                            <td class="inner-table">{{ $event->date }}</td>
                            <td class="inner-table">{{ $event->time }}</td>
                            <td class="inner-table">{{ $event->link }}</td>
                        </tr>
                    @endforeach
                </tbody>
            </table>
        </div>
    </div>
</body>
</html>

上記の{{ *** }}には、Modelで処理され、Controllerから渡された値が入ります。

Controller(コントローラー)

ユーザーがアクションを実行すると、「コントローラー」はそのアクションを処理し、必要に応じてモデルを更新します。Viewを通して受け取ったユーザーからの入力を、Modelに渡して処理を依頼します。また、Modelが処理したデータを、Viewに渡して表示を依頼します。
app/Http/Controllers ディレクトリに EventController.php という新しいファイルを作成します。
The index method:

EventController.php

public function index()
{
	$event = \App\Event::all();

	return view('viewevent', ['allEvents' => $event]);
}

最後に

  • e-commerce Web サイトにアクセスすると、表示されるさまざまなページがビュー レイヤーによって提供されます。
  • 特定の製品をクリックして詳細を表示すると、コントローラー層がユーザーのアクションを処理します。
  • これには、モデル レイヤーを使用してデータ ソースからデータを取得することが含まれる場合があります。
  • その後、データはまとめられてビュー レイヤーに配置され、ユーザーに表示されます。 洗い流して繰り返します。
71
16
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
71
16