Lravel 入門/チュートリアル
当記事ではLaravelの使い方をチュートリアル形式でまとめていきます。
Laravelとは
PHPで記述されたフレームワークの1つです。
多機能に加えて、柔軟性の高さが理由で導入する企業が増えており、人気が現在も右肩上がりです。
Laravelのインストール
Laravelのインストールには様々な方法がありますが、当記事ではComposerを使用します。
もしまだComposerまたはLaravelをインストールできていない方は下記の記事を参考にインストールしてみてください。
https://laravel-times.com/index.php/2021/04/25/composer/
フォルダ/ディレクトリ構成
まずはLaravelのフォルダ/ディレクトリ構成がどのようになっているのか確認しましょう。
app | アプリケーションのコアとなるコードを含むディレクトリです。アプリケーション内のクラスのほとんどはこの中に設置されます。 |
bootstrap | フレームワークの初期化を行い、autoloadingを設定するファイルがあります。また、フレームワークが作り出すキャッシュファイルを貯めたりもする。 |
config | アプリケーションの設定ファイルを置くディレクトリ。 |
database | データベースのマイグレーションやシードを置くディレクトリ。 |
public | アプリケーションに贈られる、すべてのリクエストのエントリーポイントとなるindex.phpファイルがある箇所。ここには他に画像、JS、CSSといったものを置いたりする。 |
resources | コンパイル前のLESS、SASS、JS、viewといったものを置く箇所。また、言語ファイルも置いたりもします。 |
routes | アプリケーションのすべてのルートを定義するディレクトリ。 |
storage | Bladeテンプレートをコンパイルしたものやセッションのファイル、キャッシュファイル、その他のフレームワークが作り出したファイルなんかが置かれる。 |
tests | PHPUnitなどの自動テストを置くためのディレクトリ。 |
vender | Composerの依存内容を置く箇所。 |
artisanファイル
laravelのフォルダを作成したディレクトリの直下に「artisan」ファイルが存在します。
こちらはLaravelのコマンドツールになります。
様々なコマンドツールを使用して、操作を行います。
良く使用するコマンドをこちらで紹介致します。
php artisan serve
1 |
php artisan serve |
こちらのコマンドでlaravelのサーバ機能を立ち上げます。
http://{ホスト名}:{ポート番号}にアクセスしてみてください。
php artisan route:list
1 |
php artisan route:list |
設定されているrouteの確認。自動生成される場合もあるので、たまに確認しましょう。
.envファイル
laravelのフォルダを作成したディレクトリの直下に「.env」ファイルが存在します。
.envファイルを使用して、開発環境と本番環境を切り替えたり、データベースなどの接続情報の変更を行うことができます。要するに、Laravelにとって重要な設定変更は.envファイルを介することで簡単に行うことができます。
開発環境では簡易的に利用できるsqliteのデータベースに接続し、本番環境では他のデータベースであるmysqlなどのデータベースに接続を分けるといった変更が可能です。
データベース設定
Laravelプロジェクト作成後はデータベースの設定を行いましょう。
以下の手順が必要になります。
- 接続設定
- マイグレーション
- モデル作成
- シーディング
一つ一つ丁寧に作成しますので、ゆっくり確認してみてください。
接続設定
接続設定とは、データベースへの接続情報を.envファイルに記載いたします。
自分の環境に合わせて設定してください。
初期値は以下のようになっております。
1 2 3 4 5 6 |
DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=homestead DB_USERNAME=homestead DB_PASSWORD=secret |
以下は参考用に私の設定です。
1 2 3 4 5 6 |
DB_CONNECTION=sqlite DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=C:\xampp\htdocs\laravelapp\database\database.sqlite DB_USERNAME=root DB_PASSWORD=root |
マイグレーション
マイグレーションとは英語で「移動・移行」を意味します。Laravelのマイグレーション機能では、まずマイグレーションファイルを作成して、その中にアプリケーションで使用sちあいテーブルの定義(カラムの名前・データ型・制約など)を記載します。
まずはマイグレーションファイルを作成しましょう。
マイグレーションファイルの作成
マイグレーションファイルは、下記のコマンドを実行すると自動で用意されている雛形を生成することができます。
1 |
artisan make:migration <ファイル名> -create=<テーブル名> |
成功すると、マイグレーションファイルがdatabase/migrations/の直下に作成されます。
マイグレーションファイルの実行
こちらでは、実際にデータベースを構成します。
作成するためのコマンドは下記です。
1 |
php artisan migrate |
上記のコマンドを実行すると、まだデータベースに反映されていないマイグレーションファイルが全て実行されます。
下記のメッセージが出力されていれば成功です。
1 |
Migrated:<作成日時><テーブル名> |
マイグレーションが成功したら、下記のテーブルにデータが追加されます。
モデルについて
モデルはデータベースの操作を行うクラスになります。
Artisanコマンドでモデルを作成します。
1 |
php artisan make:model <モデル名> |
モデルはAppの直下に作成されます。
モデルについて、もっと詳しく知りたいという方は下記を確認してみてください。
https://laravel-times.com/index.php/2021/04/29/model/
シーディング
シーディングはデータベースを管理する機能の1つで、データベース構築時にダミーデータや初期データを作成するために使用されます。
生成したい内容をクエリビルダで作成することにより、自動でレコードを生成することができます。
では、実際に設定を行っていきましょう。
シーダークラスの作成
マイグレーションのファイルはartisanコマンドで作成します。
1 |
php artisan make:seeder <シーダーファイル名> |
上記コマンド実行後は、database/seeds直下に先ほど作成したファイルが作成されます。
シーダーの作成
ダミーレコードを作成します。
先程作成されたファイルを開き、DBファサードをuseにしましょう。
1 |
use Illuminate\Support\Facades\DB; |
また、runメソッドも以下のように修正してください。
1 2 3 4 5 6 7 8 |
public function run() { $param = [ 'name' => 'ララベル太郎', 'tel' => '08012345678', 'address' => '北海道旭川市○○', 'wmail' => 'laravel_taro@mail.com', 'is_experience' => 1, ]; |
シーディングの準備
シーダークラスを作成することができましたので、次はシーディングを実行してレコードを生成していきましょう。
まずはdatabase/seeds内にあるDatabaseSeeder.phpのファイルを開き、runメソッドにcallメソッドを記述します。
1 2 3 4 |
public function run() { $this->call(<シーダーファイル名>::class); } |
シーディングの実行
シーダークラスを作成して、DatabaseSeederへ登録できれば準備万端です。下記のコマンドを実行しましょう。
指定のテーブルにレコードが生成されていたら、成功です。
1 |
php artisan db:seed |
ルーティング
データベースの準備ができたら、アプリケーションを作成します。
ルーティングから行っていきましょう。
ルーティングとは、URLとコントローラーのアクションの対応ルールのことです。
ルーティングの情報はroutes/web.phpファイルに記述します。
初期値は下記になります。
1 2 3 4 |
<?php Route::get('/', function () { return view('welcome'); }); |
ただ、ビューを直接返すのではなく、コントローラを経由するようにルーティングを設定しましょう。
1 2 |
<?php Route::get('Laravel', 'LaravelController@index'); |
ルーティングについてより詳しく知りたい方は下記の記事を参考にしてください。
https://laravel-times.com/index.php/2021/04/29/routing/
MVCモデル
こちらでは、実際にMVCモデルについて解説します。
https://laravel-times.com/index.php/2021/04/29/mvc/
ただ、モデルについてはすでに開設していますので、コントローラーとビューについての解説になります。
コントローラについて
ルーティングを設定したら、次はコントローラを生成しましょう。
コントローラの作成には下記のartisanコマンドを実行してください。
1 |
php artisan make:controller LaravelController |
作成されたコントローラはapp/Http/Controllerの直下に作成されます。
indexメソッドとeditメソッドを追加で記載しておきましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Http\Controllers\Controller; use App\Laravel; class LaravelController extends Controller { public function index() { // DBよりlaravelテーブルの値を全て取得 $laravels= Laravel::all(); // 取得した値をビュー「book/index」に渡す return view('laravel/index', compact('laravels')); } public function edit($id) { // DBよりURIパラメータと同じIDを持つlaravelの情報を取得 $laravel = Laravel::findOrFail($id); // 取得した値をビュー「laravel/edit」に渡す return view('laravel/edit', compact('laravel')); } } |
コントローラについて詳しく知りたい方は下記の記事を確認してみてください。
https://laravel-times.com/index.php/2021/04/29/controller/
ビューについて
では、ビューを作成しましょう。
ビューはresources/viewsディレクトリに作成致します。
Laravelディレクトリを作成、その中にindex.blade.phpを作成してください。
https://laravel-times.com/index.php/2021/04/29/view/
Blade
https://laravel-times.com/index.php/2021/05/03/blade/
バリデーション
バリデーションの処理も行っておきたい方は下記もチェックしてください。
https://laravel-times.com/index.php/2021/05/02/validation/
まとめ
もしエラー等が出た場合
PHPを使用していてエラーが出た場合は、下記の記事を参考にしてみてください。
もしかしたら、エラーが改善されるかもしれません。
https://itrice580.com/2021/05/30/php-error/