CakePHP4

CakePHP

[CakePHP5]Security.saltが取得できない。

CakePHP5でSecurity.saltを利用したかったのですが、なぜか取得できません。設定してあるのになぜだろう?と、30分ぐらい悩んだのですが原因判明config/bootstrap.php で消してました。Security::se...
CakePHP

CakePHP5でコードをきれいに保つ

コードのスタイルを統一しておくことは、品質の良いコードを保つのに必須要件です。ですが、コーディング規約をいちいち気にしながらコードを書くのは非常にストレスになります。ということで、できるところは機械に任せちゃいましょう。CakePHP5でコ...
CakePHP

[PHP]ゴミがレンダリングされる

CakeなりLaravelなりで、下手にコンソール出力するデバッグプリントを使って消し忘れるとめんどくさいことになります。フレームワークだと、いろんなファイルをを経由して呼ばれるので、消し忘れるとどこでやってるかわからなくなります。フレーム...
CakePHP3.x

[CakePHP]patchEntity()で渡したデータがNULLになる件

CakeでpatchEntity()で渡したカラムの中身がなぜかNULLになってしまう問題が発生。原因は、渡したデータの変数の型やフォーマットが、DBのカラムの型と一致していなかったり、変換できない場合、NULLになるというものでした。発生...
CakePHP

[CakePHP]IN句を使う場合はwhere()を使うな!whereInList()を使え

通常、IN句を使って指定のIDのレコード一覧を取ってくるには$this->Users->find('all')->whre();とすればよいのですが、$userListが空の場合エラーになってしまいます。従来は$userListの存在チェッ...
CakePHP

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

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

[CakePHP]phinxlogと現状のDBが合ってない時の最終手段

なんか知らんが、カラムがないって言われる・・・Error: SQLSTATE: Column not found: 1054 Unknown column 'hogehoge_id' in 'where clause'確かにテーブルにはない...
BootStrap

CakePHP4にBootstrap4を組み込んでみる

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

コントローラーから直接画像を出力させる

今回は、コントローラーから画像を出力させる方法をご紹介します。画像をファイル出力してリンクさせる方法もありますが、一時的な画像の場合は後処理が面倒です。そこで今回は直接レスポンスでバイナリを返すという方法をご紹介します。なお、テキストやCS...
CakePHP3.x

[CakePHP4]途中で追加したカラムが保存されない

Modelの設計を行っているときに、途中でカラムを追加するというようなことはよく発生すると思います。ですが、たまに追加したカラムがなぜか保存されないという問題が発生します。この問題は、だいたいはEntityの$_accessibleプロパテ...
CakePHP3.x

[CakePHP4]migration_diff しても差分が認識されない

テーブル定義を直接変更した後にmigration_diffコマンドを使うと差分を認識してMigrationファイルを自動生成してくれる便利な機能があります。./bin/cake bake migration_diff (設定名)ですが、使い...
CakePHP3.x

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

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

[CakePHP4]Queryからの日付取得

CakePHP4でqueryからカラムの日付をstrtotime()で変換しようとしたら以下のようなエラーになります。strtotime() expects parameter 1 to be string, object given以前の...
CakePHP3.x

CakePHP4で動的生成しながらファイルダウンロード

CakePHP4でのファイルのダウンロード方法を解説します。CakePHP3/4系での記事になります。通常の方法まずは、簡単なデータを一括で生成してからダウンロードさせる方法です。$body = "あいうえお";$filename = ra...
CakePHP3.x

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

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

count() メソッドは limit、 offset、 page 句を無視する?

CakePHP4で、データのエクスポートをするためにlimit()とpage()を組み合わせてcount()で残りの数を見ながら出力していたのだけど、なんか終了しない。むむむ?と思って調べてみたら。count() メソッドは limit、 ...
CakePHP4

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

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

CakePHP4のselectの一括カラム登録方法

以前、CakePHPのクエリビルダ―でselectでカラムを登録すると他が消えてしまって、全部登録しなおさなくちゃいけなくてめんどくさいという記事を書きました。でも、その後しらべたら、あんなことしなくても簡単にselectのカラムを一括登録...
CakePHP4

[CakePHP4] Impossible to generate condition with empty list of values for field ってなに

Impossible to generate condition with empty list of values for field (モデル名.カラム名)こんなエラーが発生しましたが、コードの位置と発生した場所が違うのでいまいちわかり...
CakePHP4

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

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