CakePHP4

CakePHP

==と===の罠

PHPは変数の型のチェックがいい加減なんで、仕様をよく理解していないと変なところでハマったりします。CakePHPのコントローラー処理で、仮に<?php//コントローラーでpublic function view($user_id = nu...
CakePHP3.x

[CakePHP4]どこでもloadModel~

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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