Laravel各ファイル基本説明

Laravelのルーティングについてweb.phpの使い方(src/routes/web.php)

  • URLとどのファイルを表示させるか紐づけます
  • URLパラメータの受け取りをします

Laravelルーティングの処理パターン routes/web.php ブラウザリクエスト 直接View返却 Controller処理 クロージャ処理 パターン1: 直接ビュー表示 パターン2: Controller経由 パターン3: クロージャで処理

Laravelコントローラーの役割

Laravelでは、ルートで処理されるリクエストの処理を、コントローラーに記述します。

artisanコマンドでコントローラーを作成

# 基本的なコントローラー作成
php artisan make:controller UserController

▼app/Http/Controllers/UserController.phpが作成されます

namespace App\Http\Controllers;  // 名前空間の自動設定

class UserController extends Controller  // クラスの自動生成
{
    // 基本的なメソッド(--resourceオプション使用時)
    public function index() { }    // 一覧表示
    public function show($id) { }  // 詳細表示
}
artisanコマンドの動作 $ php artisan make:controller UserController app/Http/Controllers/ UserController.php コントローラークラスの自動生成完了
  • app/Http/Controllersディレクトリに新しいファイルを作成
  • 基本的なクラス構造を自動生成
  • 必要な名前空間とクラスのインポートを設定

Laravel の app\Models とは?ORM(モデル)?

基本的に Laravel では app\Models フォルダ配下に「各データベーステーブルに対応する ORM(モデル)」を作成します。

ORM とは?

ORM(Object-Relational Mapping) は、「データベースの行と、プログラム上のオブジェクトを自動で対応させる仕組み」です。

Objects ORM Database

Laravel の場合、この ORM 機能を Eloquent(エロクアント) という名前で提供しています。

メリットとしては下記があります

  • SQLを直接書かずに済む
  • クエリビルダーよりさらに直感的
  • テーブルのリレーションもオブジェクトっぽく書ける

マイグレーションの基本概念

マイグレーションは「データベースの構造(テーブルやカラム)をコードで管理するための仕組み」です。

SQL を直接書かず、PHPのコードで DB を構築・変更できる

すでにあるマイグレーションファイルを編集するべき?

基本的には 過去のマイグレーションファイルは上書きしません。新しいファイルを追加します。

make:migration の命名ルール(おすすめ)

php artisan make:migration add_カラム名_to_テーブル名_table
php artisan make:migration remove_カラム名_from_テーブル名_table
php artisan make:migration create_テーブル名_table
php artisan make:migration update_テーブル名_table

生成されたマイグレーションファイルの up メソッドを以下のように記述:
Laravelのマイグレーションファイルで使われる up() と down() にはそれぞれ次のような意味と役割があります。

  • up() メソッド:構造を「適用」する処理
    php artisan migrate 実行時に呼ばれる
  • down() メソッド:構造を「元に戻す」処理
    php artisan migrate:rollback 実行時に呼ばれる

マイグレーションファイルの編集が完了したら、php artisan migrate を実行して、DBに変更を適用。

変更内容(マイグレーションによって データベースに実際に追加されたカラムなど)を確認するには、Laravel Tinker

php artisan tinker
>>> Schema::getColumnListing('users');

Laravel Tinker とは?

Tinker(ティンカー) は、Laravel に付属している インタラクティブなコマンドラインツール です。