要件定義~設計

参考記事 qiita.com 要件定義の目的 最終ゴールを具体的に決める 要件定義の3ステップ 要望・要求・要件 要望 アイデア出し(課題ベース) 要求 アイデアをもとに実装したい機能一覧を作成 要件 機能一覧と実装方法を確定(機能要件・非機能要件) 基本設計 …

ローカルスコープ

ローカルスコープとは 再利用性の高いクエリ制約を定義できる ローカルスコープの利用方法 ①Modelにスコープメソッドを定義 検索入力値がnullでなければ、半角スペースごとに区切って、and検索用のクエリを返す public function scopeSearch($query, $search…

ペジネーション

https://readouble.com/laravel/9.x/ja/pagination.htmlreadouble.com シンプルに実装してみる ①Eloquentのget()でデータ取得していたのを、paginate()に書き換え $contacts = ContactForm::select('id','name','title','created_at')->paginate(20); ②view…

ダミーデータの作り方(Factory & Faker 編)

ファクトリークラスを作成 php artisan make:factory ContactFormFactory 言語設定 config > app.php のfaker_localeの設定を日本語に変更 'faker_locale' => 'ja_JP' これで、日本語のダミーデータを作れる Factoryクラスの中でFakerを使ってダミーデータの…

ダミーデータの作り方(Seeder編)

Seederクラスを生成 php artisan make:seeder XxxSeeder クエリビルダのDBファサードで作ってみる Seederクラスに、DBとHashのファサードクラスをuse use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Hash; Seederクラスのrunメソッドで…

バリデーション

フォームリクエストバリデーション フォームリクエストは、独自のバリデーションおよび認可ロジックをカプセル化する、カスタムリクエストクラス php artisan make:request XxxXxxRequest コントローラー側の処理 コントローラー側で入力データを受けるとき…

コレクション

コレクションとは、Laravel独自の形式で配列を操作する機能が拡張されたラッパークラス コレクションの実態 実態はオブジェクトで、その中に配列本体が格納されてる $collection = colect([1,2,3]); var_dump($collection); //結果 object(Illuminate\Suppor…

Laravelで入力データをDBに保存する方法

Laravelで、DBにデータを保存する方法はいくつかあります その中でも、Modelクラスのcreateメソッドを使った方法を説明します Modelクラスのcreateメソッドで保存する方法 入力データはまずvalidationチェックをかけます その後、Modelクラスのcreateメソッ…

RequestクラスとDI

Requestクラスとは? $_POSTをさらに拡張したようなクラス Form等で送られてきたデータを登録する際に使用される DIとは? Dependency Injection(依存性の注入) 外側でインスタンス化したものが、注入される仕組み 特徴 事前にControllerクラスでRequestク…

スロットとは(Laravel)

スロットとは ヘッダーフッターを共通化 一部だけ、他の表示に差し替えなどができる機能 どれがスロット? ①名前なし {{ $slot }} ②名前あり <x-slot name="hoge"> ↓ {{ $hoge }} 事例① login.blade.phpに、slotが使用されている例 <x-guest-layout>で囲ってる内容が、全て{{ $slot }} に該当する</x-guest-layout></x-slot>…

Bladeコンポーネント(Laravel)

Bladeコンポーネントとは 原則、頭に

ルーティングのグループ化・管理テクニック(Laravel)

似たようなルートの記述設定が多い時は、グループ化したほうがシンプルで管理しやすい 例えば、LaravelBreeze(認証用ライブラリ)を入れた際、以下のルーティング設定が追記されていた Route::middleware('auth')->group(function () { Route::get('/profil…

RestFulなコントローラー(Laravel)

RestFulとは? 4つの原則からなる。 提供する情報が、URIを通して表現できること。全ての情報はURIで表現される一意なアドレスを持っていること。 HTTPをベースにした、ステートレスなクライアント/サーバプロトコルであること。セッション等の状態管理はせ…

php artisan:migrate 追加とロールバック(Laravel)

migrationファイルには、バージョン管理の役割もある。 後から列の追加や削除も可能 ※チーム開発で威力を発揮する テーブルにtitle列を追加するため、追加用のmigrationファイルを作成 php artisan make:migration add_title_to_contact_forms_table 作成用…

php artisan migrate でテーブルを作る(Laravel)

簡易的なお問い合わせフォームアプリを作成するため、 必要なテーブルを作成していく。 model & migrationファイルを作成 モデルと、モデルに対応するマイグレーションファイルを同時に作成 php artisan make:model ContactForm -m 各ファイル名の特徴 モデ…

Eloquentとクエリビルダ(Laravel)

■共通点・SQLを書かずに、簡潔なコードでDBアクセスできる・PDO_parameter_bindingを使用する為、SQLインジェクションよる危険性が減る ①Eloquent・LaravelのORM・モデルクラスを使用・自動的なマッピングが可能・リレーションシップ(テーブル間の関連付け…

文字セットと照合順序

DB

文字セットを指定するとデフォルトで照合順序も設定されている。 例えばutf8には、utf8_general_ciという照合順序とデフォルトでは設定される。 そもそも照合順序とは、データを照合する時の基準ルールみたいなものだ。 データの値を大文字小文字区別するか…

メモリ領域について 〜スタック領域とヒープ領域の違い〜

プログラミングの初期学習では、普段あまり意識することのないメモリ管理(スタック領域やヒープ領域) 知識としてなんとなくは知っているが、どのようにデータが管理されているのか?どのような違いがあるのか?などを意識してプログラミングできるほうが良…

php artisan migrateエラーになった時の解決メモ【Homestead/Laravel】

やろうとしたこと HomesteadでLaravel開発環境を構築する際、MySQLに接続してマイグレーションする 問題 マイグレーションファイルを作成し、artisan migrateしたら以下のエラーになる vagrant@homestead:~/code/myapp$ php artisan migrate SQLSTATE[HY000]…