前のパートに戻る 完了して次のパートへ  

  3-1 リスト機能の実装

リスト機能の実装


この章ではリストを作成・編集・削除する機能を実装していきます。作成・編集・削除する機能はwebアプリケーションの基本機能です。この章でWebアプリケーションの基本機能の開発方法を学ぶことが出来ます。


機能実装する際の全体の流れ


実際にLaravelで機能を実装する全体の流れについて説明します。

LaravelではMVCパターンと呼ばれるデザインパターンで作っていきます。MVCとはModel・View・Contollerの略で、プログラムの役割ごとにこれらの要素に分解して実装する仕組みです。

参考)

MVCモデルについて


LaravelのMVCパターンのイメージ

LaravelにおいてMVCパターンがどのように当てはまるかを図にしました。

Laravelの処理の流れを簡単に説明すると以下のようになります。

  1. クライアント(サービス利用者のPC)はブラウザにURLを指定してサーバーにアクセスする。
  2. サーバー(Laravel)はアクセスされたURLとルート定義を照らし合わせて、どのコントローラを呼び出すか判断します。
  3. 呼び出されたコントローラは、モデルを操作してデータベースからデータを取得します。
  4. コントローラはデータが取得次第、そのデータをビューに渡して画面を表示します。


Laravelファイル構成

Laravelでは以下のファイルがポイントになるのでぜひ覚えましょう。

作成手順

本講座では機能ごとに以下の流れで作成していきます。

  1. テーブルの設計・作成
  2. モデル作成
  3. ルート定義
  4. ビューの作成
  5. コントローラを作成

それでは、早速つくっていきましょう。


テーブルの設計・作成


リスト作成機能でまず初めにやることは、それらの情報を保存するためのデータ構造を作成することです。listingsのテーブル構成は以下のようになります。

user_idをusersテーブルへの外部キーとします。


マイグレーション

マイグレーションとは、マイグレーションファイルというスクリプトファイルを介してデータベースを操作することです。SQL文でデータベースを操作することも可能ですが、マイグレーションファイルを介することで変更履歴を管理しやすくしたり、複数人での作業がしやすくなるメリットがあります。

下記のコマンドでテーブルを作成するためのマイグレーションファイルを作成します。

$ php artisan make:migration create_listings_table --create=listings

上記コマンドのうち、「create_listings_table」がファイル名、「listings」がテーブル名となります。

コマンドを実行すると下記のファイルが作成されます。

「database/migrations/YYYY_MM_DD_HHMMSS_create_listings_table.php」

kanban
  └─database
     └─migrations
         └─YYYY_MM_DD_HHMMSS_create_listings_table.php ※/YYYY_MM_DD_HHMMSSは作成日時です

このファイルを以下のように編集します。

編集が終わったらマイグレートしてテーブルに反映します。

$ php artisan migrate

※もしconnection refusedというエラーが表示された場合は、下記のページを参考にしてhomestead provisionコマンドを実行してみて下さい。

connection refusedが出た場合の対処法

下記のコマンドでテーブルが作成されたか確認します。

mysql -u root
use laravel;
show tables;
desc listings;
exit;

MySQLコマンドは下記ページを参考にして下さい。

参考)

よく使うMySQLコマンド集

(実行結果)

$ mysql -u root

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| laravel            |
| mysql              |
| performance_schema |
| sys                |
+--------------------+

mysql> use laravel;
mysql> show tables;
+-------------------+
| Tables_in_laravel |
+-------------------+
| listings          |
| migrations        |
| password_resets   |
| users             |
+-------------------+
mysql> exit;

listingsテーブルが作成されていることを確認できました。

モデル作成


つぎにListingモデルを作成します。LaravelではモデルをEloquentModelといい、複数形だったテーブル名を単数形にし、先頭文字を大文字としたModelが、自動的にテーブルと紐付きます。つまり今回の場合、

listings(テーブル)⇔Listing(モデル)

が自動的に紐付きます。

下記コマンドを実行しモデルを作成します。

$ php artisan make:model Listing

そうすると「/kanban/app/Listing.php」ファイルが作成されます。

モデルについての公式ドキュメントは以下にあります。

https://laravel.com/docs/5.7/eloquent

お疲れさまでした、モデルの作成はこれで完了です。

次のセクションではルートの設定から入ります!

議論

0 質問

このコースの評価は?