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...
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バイトであり、オブジェクト配列などサイズの大きいデータをシリアラ...
WordPress

[WordPress]SEOパネルなどの位置を右から下に移動する

概要 WordPressのブロックエディタにて、元々は画面の一番下にあったSEOパネルの位置が右に移動して戻せなくなってしまったが、以下の手順で元の位置に戻すことができた。 おそらく、カスタムフィールドを有効にすることでSEOパネルをドロップする場所が作成されたのだと思われる。 手順 1. 右上の縦三点リーダー「︙」をクリック 2. 「設定」をクリック 3. 「パネル」をクリック 4. 「カスタム...
WordPress

[WordPress]Advanced Custom Fieldsの日付に曜日を表示させる方法

概要 WordPressのAdvanced Custom Fieldsプラグインを使って作成した日付型カスタムフィールドは日付しか表示されないため、テーマファイルに曜日表示処理を追加してみました。 修正前 <?=get_field('the_date')?> <!-- the_dateはカスタムフィールドのフィールド名 --> 修正後 <?php $week = array( "日", "月", ...
WordPress

[WordPress]投稿ページや固定ページのテンプレートが反映されない?

概要 WordPressのテンプレートには優先順位がある。 固定ページであればpage-xxx.php⇒page.php⇒singular.php⇒index.phpの優先順位となっている。 singular.phpは投稿と固定ページの両方で適用されるファイルであり、古いWordpressにはなかったものである。 これを知らないと、index.phpが適用されていると勘違いしてしまうことになる。 ...
WordPress

[WordPress]Contact Form7で確認用アラートを表示させる方法

概要 WordPressのContact Form 7プラグインでは、送信ボタンをクリックするとすぐに送信が実行されてしまう。 Contact Form 7 add confirmなどのプラグインを使えば確認画面を表示させることができるが、確認用アラート(JavaScriptのconfirm)を表示するだけであればプラグインを使わずに実装することができる。 手順 1. Contact Form 7...
WordPress

[WordPress] パスワード保護されたページからログアウトする方法

概要 WordPressでパスワード保護されたページにログインすると、10日間はログイン状態となりパスワードの再入力が不要となる。 ログアウトする方法は提供されていないため、自分でクッキーを削除する必要がある。 ログアウトする方法 Google Chromeの場合 Google Chromeのメニュー⇒表示⇒開発 / 管理⇒デベロッパーツール、を選択(またはF12キーを押下)してデベロッパーツール...
スポンサーリンク