Chapter 08

PHPフレームワークを使ったアプリ開発 | Laravel入門

くすたん
くすたん
2020.10.28に更新

Chapter7

PHPフレームワーク「Laravel」を使ってアプリ開発を行います。

Webアプリケーションフレームワークについて

Laravelのインストール

Git Bash または VS Code のターミナルからコマンド起動をしてください。

Laravelインストーラのダウンロード(composerのインストールが必須です)

$ composer global require laravel/installer

プロジェクト作成の場所に移動(1か2のどちらかを実行すればOKです)

  1. Git Bashの場合
$ cd /c/xampp/htdocs/
  1. VS Codeの場合
$ cd C:\xampp\htdocs\

プロジェクトの作成

$ composer create-project "laravel/laravel=7.*" todo

htdocstodo フォルダができているので、 VSCodeフォルダを開く から todo を開いてください。

各ディレクトリの構成

Laravelサーバの起動

$ php artisan serve

Laravelで作ったアプリケーションは以下のURLから閲覧できます。

http://localhost:8000/

GitHubでのリポジトリ作成

今まではForkしてリポジトリを作っていましたが、これからは各個人のアカウントに直接リポジトリを作ってください。

リポジトリ作成後には、対象プロジェクトを VS Code で開いてcommit&pushをしてください。

GitHubでのリポジトリ作成

GitHubの内容が更新されないとき

GitHubの内容が「README.md」だけになっている

$ git add .

を実行した後に以下の動画の続きを試してみてください

https://youtu.be/jp_l-arRaz8?t=36

ターミナルに The requested URL returned error: 403 のエラーが出ている

GitにPushできないときには こちらの操作 をしたあとに

$ git push -u origin main

を試してください

テーブルの作成

$ cp .env.example .env

.env ファイルの12行目付近にいつもの情報を記載してください。

DB_DATABASE=todo
DB_USERNAME=root
DB_PASSWORD=password

テーブルの作成

$ php artisan make:migration create_todos_table

生成されたファイルの中身は以下のものと同じようにしてください(YYYY_mm_dd_HHiissは今の時間になっているので違ってもOKです)

YYYY_mm_dd_HHiiss_create_todos_table.php

マイグレーション

$ php artisan migrate

Seederの作成

seederの作成

$ php artisan make:seeder TodoTableSeeder

TodoTableSeeder.php の中身

TodoTableSeeder.phprun が実行されるように DatabaseSeeder.php の設定

DatabaseSeeder.php
<?php
use Illuminate\Database\Seeder;

class DatabaseSeeder extends Seeder
{
    /**
     * Seed the application's database.
     *
     * @return void
     */
    public function run()
    {
         // TODO: UserSeederをTodoTableSeederに変更する 
         // $this->call(UserSeeder::class);
         $this->call(TodoTableSeeder::class);
    }
}

seederの実行

$ php artisan db:seed

Todo一覧の作成

Todo一覧の作成

Todoモデルの作成

$ php artisan make:model Todo

Todoコントローラーの作成

$ php artisan make:controller TodoController --resource

各リソースコントローラのアクション

リソースコントローラ


ルーティングとController、Viewの紐付け

ルーティングを設定

routes/web.php

メソッドにデータ取得とViewを紐付ける処理を追加

app/Http/Controllers/TodoController.php

Todo一覧ページのViewを記述

resources/views/todo/index.blade.php

http://localhost:8000/todo にTodo一覧が表示されます。

Todo単体ページの作成

Todo単体ページの作成

ルーティングとController、Viewの紐付け

ルーティングを設定

routes/web.php

メソッドにデータ取得とViewを紐付ける処理を追加

app/Http/Controllers/TodoController.php

resources/views/todo/index.blade.php

Todo単体ページのViewを記述

resources/views/todo/show.blade.php

ページネーションの追加

ページネーションの追加

ページネーションの処理追加

app/Http/Controllers/TodoController.php

ページネーションのView追加

resources/views/todo/index.blade.php

この章終了時点でのコード

https://github.com/qst-exe/c2-php-todo/tree/chapter1