CakePHP

[CakePHP] 実行前の生SQL文を取得する

プレースホルダを使ったSQLは実行後のクエリログを参照すれば実際に流したSQLの全文が取得できますが、実行前はそうもいきません。
さて、こういう時どうするかと考えた結果です。
CakePHP3.5 & MySQLで確認。
続きを読む

[CakePHP] JSONレスポンスで日本語をエンコードをさせない

PHPのjson_encode()関数はデフォルトでマルチバイトUnicode文字を\uXXXXにエンコードします。
PHP: json_encode - Manual

$values = [
  'message' => 'わけがわからないよ',
];

echo json_encode($values); // {"message":"\u308f\u3051\u304c\u308f\u304b\u3089\u306a\u3044\u3088"}

これによって読みづらくなる上に、データ量が増加してしまうばかりでメリットは薄いです。
CakePHPでJsonViewを使う場合にどうやって設定するかのメモ。
CakePHP3.5で確認。
続きを読む

[CakePHP] しつこいSecurityコンポーネントをゆるくする

Securityコンポーネントで管理者ページだけBASIC認証をかけようと思ったのでAppControllerで読み込ませたところ、ユーザページのフォームでトークン発行や項目チェックがしつこく掛かってしまい、いろいろ取り回しがしづらくて困ったので、状況を打破してみた。
CakePHP 1.2.7にて確認。

続きを読む

[CakePHP] URLによってModel::displayFieldを動的に変更する

routes.phpで設定した特定のルーティングに従ったURLでアクセスされた場合にモデルのdisplayFieldを動的に変更する方法。例えばURLが「/hoge/users/」だったらdisplayField"hoge_name"、「/fuga/users/」だったら"fuga_name"にするなど。
誰が得するのかわからないですが、とりあえずメモっておく。

CakePHP1.2.7で確認。そろそろ1.3に移行したいところ。

続きを読む

[CakePHP] Emailコンポーネントで文字コードを変換して送信する

CakePHP1.2.6にて。
標準で組み込まれているEmailコンポーネントはいろいろ便利ですが、文字コード(charaset)のデフォルトがUTF-8になっています。近年のメーラーはほとんどがUnicode対応なのですが、未だUTF-8で送ると日本語が文字化けしてしまうものがあるようです。そこで文字化けを防ごうとcharasetプロパティに『iso-2022-jp』を設定しても、自動で文字コードを変換してくれません。どうにかせにゃと思ったのでメモ。

続きを読む