プログラミング

スポンサーリンク
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...
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...
Laravel

[Laravel] データを更新してもリレーション先が変更されない?

概要 Laravelのモデルでリレーションを定義した場合、一度リレーション先のモデルを参照するとその参照が保持される。このことはデータを参照するだけであれば問題ないが、データを更新した場合、古いリレーション先を参照することになってしまう。 ※マニュアルに書かれていることではないため、もし詳しい方がいらっしゃいましたらコメントください サンプル 例えば以下のようにusersテーブルとitemsテーブ...
スポンサーリンク
PHP

Laravelのsail環境でMySQLをダンプ・エクスポートする方法

概要 sailを使ったdocker環境では、ローカルマシンからmysqldumpコマンドでlocalhostに接続することができない。 以下の手順でdockerコンテナに接続してからmysqldumpコマンドを実行すると、問題なくダンプ・エクスポートすることができる。 sail shell mysqldump データベース名 -uユーザー名 -p -hmysql > dump.sqlex) データ...
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...
PHP

[PHP] MySQLの値をunserialize()するとfalseになってしまう原因

概要 PHPのserialize関数でシリアライズした文字列をMySQLに保存し、それをMySQLから取り出してunserialize()関数でアンシリアライズするとfalseが返されてしまうことがある。 原因 様々な原因が考えられるが、最も多いのはサイズオーバーだと思われる。 MySQLのデータ型がTEXT型の場合は上限が65535バイトであり、オブジェクト配列などサイズの大きいデータをシリアラ...
JavaScript

Jestでカバレッジを確認する方法

概要 JavaScriptのテスティングフレームワークであるJestを使ってカバレッジを確認したい場合、npm run test -- --coverageやnpx jest -- --coverageなどのコマンドを入力する。 ただし、上記コマンドではgitにコミットされたファイルのみが対象となるため、前回実行時からコミットがない場合はNo tests found related to file...
Node.js

[Node.js] Error: Cannot find module ‘../scripts/start’の解決方法

概要 Node.jsを使っているプロジェクトのディレクトリーをコピーまたは移動すると、npm startを実行してもError: Cannot find module '../scripts/start'となってしまうことがある。 解決方法 node_modulesディレクトリを削除し、npm installを実行する。 ディレクトリのコピー・移動でnode_modles配下のシンボリックリンクが...
TypeScript

[TypeScript]関数の型定義

関数の定義 引数のみアノテートし、戻り値は型推論を使う。 const add = (a: number, b:number) => a + b オプションパラメータとデフォルトパラメータ 引数名の後ろに?を付けると省略可能なオプションパラメータとなる。省略時はundefinedとなる。 引数名=値とするとデフォルトパラメータとなる。デフォルト引数は型推論を使う。 const print = (a:...
TypeScript

[TypeScript]enum(列挙型)の使い方

数値列挙の場合 const enum Color { Red, Blue, Green } console.log(Color.Green) // 2 文字列列挙の場合 const enum Color2 { Red = "#f00", Blue = "#00f", Green = "#0f0" } console.log(Color2.Green) // "#0f0" 「型名は大文字で始まる単数...
スポンサーリンク