1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Laravel概要】 Laravelとは

Last updated at Posted at 2023-02-11

バージョン

Laravel8より約1年毎に新バージョンのリリース
Laravel9.0 = PHP8.0以上が必要

バンドル

コンパイル015/02 Laravel5.0 Laravel Elixir (Gulp)
2017/01 Laravel 5.4 Laravel Mix (webpack)
2022/06 Laravel9.18 Viteに変更

Vite

Node.js/npm のインストールが必須
package.json / package-lock.json 設定管理ファイル
vite.config.js Vite設定ファイル

Laravel Breeze (認証ライブラリ)

【Laravel6.x~ Laravel / ui】
View(PHP) Blade
js Vue.js / React.js
css Bootstrap

【Laravel8.x~ Laravel Breeze】
Blade
Alpine.js
Tailwindcss

【Laravel8.x~ Jetstream】
Livewire + Blade
Inertia.js + Vue.js
Tailwindcss

初期設定

・タイムゾーン
・言語設定
・デバックバー
  インストール

composer require barryvdh/laravel-debugbar:^3.7

  (バージョン指定しない場合は自動的に最新版)
  envのAPP_DEBUGで表示切り替え
・エラーメッセージの日本語化
・データベース設定
  DBクライアントからデータベースとユーザーを作成
  envにも追記
  確認

php artisan migrate

エラー対処

MVCモデル

Model (DBとやり取り)

ORM/ORマッパー (DBとのやり取りをLaravel以外で書ける)
Object-Relational Mapping (オブジェクト関係マッピング)

モデルファイルの作成

php artisan make:model Test

コントローラとマイグレーションの同時作成

php artisan make:model Test -mc

【DBから情報を取得する方法】
速度は多少クエリビルダが早いが、エロクアントを優先的に使用する方がメリットが多い。

1.Eloquent
  use App\Model\Test;
  $test = Test::all(); //モデル名::メソッド
  dd($tests); //コレクション型(配列を拡張した型)

  リレーション(複数テーブルの連帯)、スコープ(クエリの分割)が使用できる

2.クエリビルダ
  SQLに近い構文(rawで生のSQLも書ける)
  DB::table('test')->get(); //ファサード(複雑な関連クラスを持つクラス群を簡単に利用するための窓口)
  getやfirstで確定。確定しなければQueryBuilder型

  use Illuminate\Support\Facades\DB;

  コレクション型

 DB::table('tests')->where('text', '=', 'bbb')->select('id', 'text')->get();

QuryBuilder

DB::table('tests')->where('text', '=', 'bbb')->select('id', 'text');

View (見た目)

resources/views/
xxxx.blade.php

Controller (処理)

php artisan make:controller TestController

app/Http/Controllers/ 配下に自動生成
Routing アクセスの振り分け

routes/web.php
Migration (DBテーブルの履歴管理)

databases/migrations
モデルは単数形、マイグレーションは複数形で記述→Laravelが自動判定

ファイル作成

php artisan make:migration create_tests_table
php artisan migrate //DBに反映

php artisan migrate:fresh //テーブルを全て削除し再生成
php artisan migrate:refresh //ロールバックして再生成

Artisan

	// キャッシュ削除
    php artisan cache:clear
    php artisan config:clear
    // artisan コマンドリスト表示
    php artisan list

tinker (DB簡易接続)

対話型 コマンドでデータ保存・閲覧

php artisan tinker
//保存
 $test = new App\Models\Test;
$test->text = "aaa";
$test->save();
App\Models\Test::all(); //全件表示

Laravel起動処理DIとサービスコンテナ

参考記事

エントリポイント(public\index.php)からアクセスが始まる

  1. view
  2. public/index.php
  3. HTTPカーネル
  4. ルーティング
  5. ミドルウェア
  6. コントローラ
  7. view

DI(依存性の注入)

クラスの中でインスタンス生成(new)するのではなく、外部で用意して注入
サービスコンテナ
DIをまとめて担う

Blade (テンプレートエンジン)

拡張子 blade.php
{{}}エコー文は、XSS攻撃を防ぐために、HPのhtmlspecialchars関数を通して自動的に送信される。

@csrf
CSRF保護ミドルウェアがリクエストをバリデートできるように、フォームへ隠しCSRFトークンフィールドが自動生成される。

記述方法

ルーティング->コントローラ->ビュー

routes/web.php
use App\Http\Controllers\TestController; //ファイル内で使用可能に
Route::get('tests/test', [TestController::class, 'index']); //配列で書く(バージョンで書き方が異なる)
App/Http/Controllers/TestController.php
    public function index()
    {
    //view() ヘルパ関数 フォルダ名.ファイル名
    return view('tests.test'); 
    }
resources/views/test/test.blade.php
test

読み込む↓

App/Http/Controllers/TestController.php
use App/Models/Test; //Testモデルを読み込む
php function index()
{
$values = Test::all(): //全件取得

//dd($values); //処理を止めて内容を確認できる

//compact()でView側に変数を渡すと楽
return view('tests.test', compact('values')); 
}
``
1
2
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
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?