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...
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...
Ubuntu

Ubuntuのapache設定コマンド

今までサーバーはCentOS系を使っていることが多かったのですが、CentOSはまぁいろいろあるので最近はUbuntuを使うようにしています。 Ubuntu Serverのapache設定はRHEL系と設定ファイルの構成がちょっと違うのでい...
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の独自...
VSCode

[VSCode]フォーカスがメニューに移動してしまう

ここ最近、VSCodeでコーディングしているとやたらと入力ミスが頻発するようになってしまった。 入力途中にフォーカスがメニューの方に移ってしまうことが原因。 どうも、いつごろからか、Altを押すとメニューに移動するような仕様になっているらし...
CakePHP4

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

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