cakephp4

CakePHP

[CakePHP4]ModelをcontainしたらCannot convert value of type array to string になる場合

CakePHP4であるモデルをcontain()で追加したら、下記のエラーになりましたCannot convert value of type array to string原因テーブルに複合PK使っていました。その場合、接続元のテーブルを...
BootStrap

CakePHP4にBootstrap4を組み込んでみる

CakePHP4にBootstrap4を組み込む方法はいくつかあるかと思います。単純に、Bootstrapをダウンロードしてきて、webrootに配置。layoutファイルなどで読みこませるだけでも使うことは可能ですが、今回はプラグインを利...
CakePHP3.x

エラー画面のレイアウトを変更する

CakePHP4でレイアウト、つまり大枠の部分のデザインテンプレートは、デフォルトではtemplate/layout/default.php が使われます。これは、レイアウトファイルといわれていますが、デフォルトのレイアウトファイルを変更す...
CakePHP3.x

サーチプラグインでカラムを連結して検索したい

friendsofcake/search を使っての検索は非常に楽なんですが、いろいろわからない点が多いんですよね。カラムを連結して検索する要件があたのですが、手間取ったので記事にしました。CakePHP2の場合CakePHP2の場合は非常...
CakePHP4

[CakePHP4.x]複数認証の実装方法

CakePHP4で認証システムを実装するのは若干以前より面倒になった感があります。通常の実装方法に関しては、こちらで以前記事にしました。一般的な実装方法についてわからない場合はcakebookの下記のページを参照すればよいかと思います。今回...
CakePHP4

helperなどでのURL指定方法の命名規則

CakePHP4でprefixを出したくてこんな感じに書いたらエラーになりました。$this->Url('link-title', ); エラー内容 A route matching "array ( 'prefix' => 'api', ...
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...
CakePHP4

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

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