CakePHP3.x

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

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

[CakePHP4]Queryからの日付取得

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

Cakeで行ロックを使う方法

CakePHP4系で行ロックを使う方法です。 あんまり指摘している記事がなかったので書いてみました。 具体的にはFOR UPDATEを使うのですが、どうやって呼ぶのか? 早速コードを見てみましょう //Tableクラス内などで use Ca...
雑談

開発環境に関する調査で驚愕の事実が判明!

こんな面白い記事を見つけました。 ここに、いろいろ驚愕の事実があったのでご紹介します。 ITエンジニアが使いたいのはどちら? まずはどのOS?を使いたいかについて。 参考サイトより引用 これが現実です。プログラミングスクールとかで、モダンな...
CakePHP3.x

PHPのオブジェクトコピー

CakePHPのqueryビルダで、こんな感じで条件を変えて連続して結果を取得したいなぁ‥というとき。 例えばこんな感じのことをしたいとすると $query = $this->find()->where(共通の複雑な条件); $a = $q...
CakePHP3.x

Viewにセットした値をコントローラーで取得する

Viewにセットした値をコントローラーで取得する方法です。 古いバージョン(CakePHP2系) コントローラークラスにプロパティーがありますので、そこから取得が可能です。 $varname = $this->viewVars; 現行バージ...
CakePHP3.x

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

CakePHP4でのファイルのダウンロード方法を解説します。 CakePHP3/4系での記事になります。 通常の方法 まずは、簡単なデータを一括で生成してからダウンロードさせる方法です。 $body = "あいうえお"; $filename...
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 (モデル名.カラム名) こんなエラーが発生しましたが、コードの位置と発生した場所が違うのでいまいちわか...
雑談

借りたサーバーがブラックリストに載ってた

お客さんが契約したサーバーの設定をしてたら、なんかメール送信がうまくいかない。 テスト用サーバーで本番サーバーじゃないからまぁいいやって後回しにしてたんだけど、やっと時間ができたので本格的に見てみたら…。 554 Your access t...
開発

CakePHPのselectが面倒くさいんじゃ!

追記 その後、こんなことしなくてももっと簡単にできることが判明。こちらのリンクを参照してください。 忘備録としてこのページも残しておきます。 CakePHPのQueryビルダーでカラムをselectするのはちょっと面倒です。パフォーマンス的...
VSCode

[VSCode]ソース表示とファイル一覧の同期をやめさせる

VSCodeを使っていて、左側のソースファイル一覧表示と右のソース表示が同期しているので、チャカチャカ動いてうざいんですよね。 ファイルを探していて、やっと見つけたと思ったらフォーカスが移動してしまうのでイラっとします。 私は、基本的にこの...
CakePHP4

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

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

==と===の罠

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

[PHP]変数の中身を変数名に使いたい

変数の中身を変数名に使いたい時ってありますよね。 そういう時は可変変数というものを使います。 <?php $hoge = 'ほげだよ'; $fuga = 'hoge'; echo $$fuga; 実行例 ちなみにオブジェクトのプロパティーと...
CakePHP3.x

[CakePHP4]どこでもloadModel~

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

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

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