CakePHP4

CakePHP3.x

[CakePHP4]どこでもloadModel~

コントローラー以外でもModelを使いたい場合ってありますよね? え?使うなって。でもコンソールとかコンポーネントとかで使いたい場合あるでしょう? そんなときの方法です。 環境 CakePHP4(たぶんCakephp3も同じ) 方法 tra...
CakePHP4

Queryビルダーに渡す無名関数でエラー

Queryビルダーに渡す無名関数で下記のようなエラーが出る場合。 Argument 1 passed to App\Controller\コントローラー名Controller::App\Controller\{closure}() must...
CakePHP4

ErrorControllerでログインユーザー情報が取得できない。

Authentication Component 2.xでErrorControllerでログインユーザー情報が取得できない問題に直面しました。 エラー画面でもユーザー情報を表示するためにログイン情報が欲しいのだけなのですが、 $this-...
CakePHP4

Entityを手動で書き換えたら保存されない場合は?

CakePHPのEntityの仕組みは、わかれば便利なんですが、知らないとちょっと困る場合が多いです。 patchEntity()を通してEntityを生成する場合は問題ないのですが、手動でEntityを書き換えた場合はいろいろハマるポイン...
CakePHP4

自動生成されたマイグレーションファイルがマイグレートできない。

自動生成されたマイグレーションファイルがマイグレートできませんでした。 エラーはこんな感じ PDOException: SQLSTATE: Syntax error or access violation: 1067 Invalid def...
CakePHP3.x

$this->request->is()が反応しない

CakePHP4で編集画面の作成を行っていたらなぜか$this->request->is()に反応してくれなくて一向にデータの更新処理に行かない。 なんでだ…。と思ったら 原因 単なるケアレスミス。 フォームにプライマリキーを書き忘れてまし...
CakePHP3.x

Authentication Component 2.xで手動でログイン状態にする方法

CakePHP4のログイン認証はAuthentication Component 2.xに変わったのですが、以前と勝手が違うので戸惑うことが多いです。 手動でログインする方法が分からなかったので調べてみました。 バージョン情報 CakePH...
CakePHP4

モデルに存在しないフィールドのヴァリデーション

モデルに含まれていないカラムのヴァリデーションをどうするかという問題があります。 ヴァリデーションを書いたとしても、Entytyをインスタンス化する過程でブロックされてしまうので意味がありません。 モデルがないフォームのヴァリデーションを行...
CakePHP4

CakePHP4でヴァリデーションだけ行う

CakePHP4でヴァリデーションだけ行うには、CakeBookでは下記のように // ArticlesController クラスにおいて $article = $this->Articles->newEntity($this->requ...
CakePHP4

Authentication Component 2.x でのログイン実装

CakePHPでは、デフォルトでログイン用の認証システムが組み込まれていました。これまではcomponentでの実装がされていまいたが、今までのものはCakePHP4では非推奨になり新たな方法が実装されました。 以前は、CakePHPの独自...
CakePHP4

CakePHP4で配列やオブジェクトをログ出力する方法

CakePHP4でログの仕様が変わってしまったために、配列などがログ出力できなくなってしまいました。 何とかする方法を紹介します。 CakePHP4のログはテキストしか渡せない CakePHP3までは、Logクラスに変数を突っ込んでやれば、...
CakePHP4

[CakePHP4.x]SSL付きだとDebugKitが動かない?

CakePHP4でDebugKitが動かない問題に当たりました。 PHP7.4 CakePHP4.2.3 DebugKit  4.4?(Cake本体に同梱) ホスト環境はWindows10で、VirtualBoxにCentOS8を入れて開発...
CakePHP

Windowsホスト&VirtualBoxの共有フォルダー内でcomposerやnpmが動かない

いろいろ試して、WindowsホストでVirtualBoxの共有フォルダー機能は使ってはいけないという結論になりました。 なぜダメなのかと解決方法(代替案)を記事にしました。 composerやnpmが動かない Windows環境でVirt...
CakePHP3.x

CakePHP3.9/4でMySQLに接続しようとしたら「SQLSTATE[HY000] [2002] No such file or directory」が出る。

新規にCakePHPの環境をインストールしていて、なぜかデータベースに接続できず SQLSTATE No such file or directory というエラーがでてどうにもこうにも困りました。 せっかちな方は結論に飛んでください。 原...