Laravel [Laravel] ページネーションの簡単なサンプル コントローラ public function index(Request $request): View { $items = Item::orderBy('id', 'desc')->paginate(50); return view('items.index', ); } ビュー @if ($items->hasPages()) 全{{ $items->total() }}件中{{ $item... 2023.11.20 Laravel
PHP [PHP] POSTデータが途中で切れてしまう原因(max_input_vars) 概要 PHPの設定項目にあるpost_max_sizeはPOST送信全体のデータサイズ上限を決めるものだが、それとは別にmax_input_varsというPOST送信の数の上限を決める項目がある。 POST送信する値が多い場合、サイズはpost_max_size以内であっても個数がmax_input_varsをオーバーしてしまうとオーバーした分の値が切り捨てられてしまう。max_input_var... 2023.11.16 PHP
PHP [PHP][Laravel] フォームから送信された配列をintにキャストする方法 概要 フォームから送信された値は数値であっても文字列として扱われる。array_map関数の第1引数(コールバック)にintval関数、第2引数にフォームから送信された配列、を指定するとint配列を生成することができる。 $numbers = array_map('intval', $request->input('numbers')); Laravel コントローラで以下のようにする。 publ... 2023.11.13 PHP
PHP [PHP] 列挙型(Enum)の使い方 定義 <?php enum Color: int { case RED = 1; case BLUE = 2; case GREEN = 3; public function label(): string { return match ($this) { self::RED => '赤', self::BLUE => '青', self::GREEN => '緑', }; } public fu... 2023.11.06 PHP
CSS [CSS] [jQuery] option要素をdisplay:noneで非表示にする方法(Safari対応) 概要 <option style="display:none">hoge</option>とするとoption要素を非表示にすることができるが、Safariでは表示されてしまう。 解決方法 <span style="display:none"><option>hoge</option></span>のようにoption要素をラップしたspan要素をdisplay:noneとすることで、Safari... 2023.10.30 CSSJavaScript
Laravel [Laravel] データを更新してもリレーション先が変更されない? 概要 Laravelのモデルでリレーションを定義した場合、一度リレーション先のモデルを参照するとその参照が保持される。このことはデータを参照するだけであれば問題ないが、データを更新した場合、古いリレーション先を参照することになってしまう。 ※マニュアルに書かれていることではないため、もし詳しい方がいらっしゃいましたらコメントください サンプル 例えば以下のようにusersテーブルとitemsテーブ... 2023.10.26 Laravel
PHP Laravelのsail環境でMySQLをダンプ・エクスポートする方法 概要 sailを使ったdocker環境では、ローカルマシンからmysqldumpコマンドでlocalhostに接続することができない。 以下の手順でdockerコンテナに接続してからmysqldumpコマンドを実行すると、問題なくダンプ・エクスポートすることができる。 sail shell mysqldump データベース名 -uユーザー名 -p -hmysql > dump.sqlex) データ... 2023.09.29 PHP
PHP Laravel-MySQLのORDER BYでnullを後ろにする(中間テーブルにも対応) 概要 MySQLではnull許可のカラムでORDER BYすると、nullの行が先に取り出される。例えばLaravelでHoge::orderBy('score', 'asc')->get()とすると、scoreがnullの行が先に取り出され、その後にscoreがnullではない行が昇順で取り出される。 nullを後ろにする方法 Hoge::orderByRaw('score is null as... 2023.09.27 PHP
PHP [PHP] MySQLの値をunserialize()するとfalseになってしまう原因 概要 PHPのserialize関数でシリアライズした文字列をMySQLに保存し、それをMySQLから取り出してunserialize()関数でアンシリアライズするとfalseが返されてしまうことがある。 原因 様々な原因が考えられるが、最も多いのはサイズオーバーだと思われる。 MySQLのデータ型がTEXT型の場合は上限が65535バイトであり、オブジェクト配列などサイズの大きいデータをシリアラ... 2023.09.26 PHP
JavaScript Jestでカバレッジを確認する方法 概要 JavaScriptのテスティングフレームワークであるJestを使ってカバレッジを確認したい場合、npm run test -- --coverageやnpx jest -- --coverageなどのコマンドを入力する。 ただし、上記コマンドではgitにコミットされたファイルのみが対象となるため、前回実行時からコミットがない場合はNo tests found related to file... 2023.08.03 JavaScript