CakePHP

CakePHP

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

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

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

PHPのjson_encode()関数はデフォルトでマルチバイトUnicode文字を\uXXXXにエンコードします。$values = [ 'message' => 'わけがわからないよ',];echo json_encode($values); // {"message":"\u308f\u305...
CakePHP

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

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

指定した複数のキーのいずれかに値が入っているか検査する

Set::filterを使っているので、CakePHP限定のお手軽技。複数の特定キーのいずれかに対してNULL以外の値が代入されているかを1文でチェックします。array_intersect($keys, array_keys(Set::filter($target_array)));
CakePHP

年別あるいは年月別に対応するSQL条件式を生成する

MTのブログなどではよく月別、年別で記事アーカイブのインデックスをディレクトリ(例:/post/2010/12/)で分けていると思いますが、それと同様に対応する簡単な方法。今頃CakePHP1.2RC2で検証。
CakePHP

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

routes.phpで設定した特定のルーティングに従ったURLでアクセスされた場合にモデルのdisplayFieldを動的に変更する方法。例えばURLが「/hoge/users/」だったらdisplayFieldを"hoge_name"、「/fuga/users/」だったら"fuga_name"にす...
CakePHP

個人的によく使いまわすAppModelにおける5つのメソッド

俺がCakePHPの開発では最近は必ずというほど実装しているAppModelの機能をなんとなく紹介してみる。だいたいはどこかのサイトに載っていたものを使っていますが、出所は覚えてなかったり。。。CakePHP 1.2.7対応(おそらく1.2共通)
CakePHP

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

CakePHP1.2.6にて。標準で組み込まれているEmailコンポーネントはいろいろ便利ですが、文字コード(charaset)のデフォルトがUTF-8になっています。近年のメーラーはほとんどがUnicode対応なのですが、未だUTF-8で送ると日本語が文字化けしてしまうものがあるようです。そこで文...
CakePHP

FormヘルパーとjQuery UIのdatepickterを連動させる

日付選択のプルダウンに対してjQuery Uに含まれるdatepickerを使う方法をメモついでに紹介。CakePHP 1.2.6 + jQuery 1.3.2 + jQuery UI 1.7.2で確認。
CakePHP

今更PHP4.3.2+PostgreSQL7.3で CakePHP1.2.5をどうしても動かしたい!(2日目)

前日に引き続き検証。なんとか動いた(?)ので、それまでの軌跡を記します。
CakePHP

モデルのquery()の結果を find()と同様の戻り値にする

PostgreSQLにおいてquery()の取得結果が期待した形になっていなかった件についてメモ。CakePHP 1.2.5で確認。
CakePHP

JavascriptHelper::object() オプションはJSON関数の有無に左右される

JSON関数が有効なPHP環境ではJavascirptヘルパーのobjectメソッドのstringKeys、quoteKeys、qが効かなくなります。これは良いのか?って思う仕様。CakePHP 1.2.5で確認。
CakePHP

Smartyテンプレート内でrequestActionを使う方法

CakePHPのマニュアルに載っているrequestAcrtionをViewテンプレート内で使う方法ですが、SmartyViewを使うとそっくり同じにはできません。ちょっと試して代替方法で出来たのでメモ。CakePHP 1.2.3.8166 + SmartyView 1.2.1で確認。
CakePHP

Formヘルパーのnameを 手っ取り早くキー無し配列にしてしまう邪道な技

要はname="data"のようなhasManyとかで使いそうな形にする技。CakePHP 1.2.3.8166で確認。
CakePHP

Model::deconstruct()の反対で 日時文字列を配列に変換するconstruct関数を作ってみた

FromHelper::dateTime()で入力した日時配列をDB登録用のタイムスタンプ形式の文字列に変換してくれるModel::deconstruct()があるのに、その反対を行うメソッドが無いので自作しました。誰もがやっていると思いますが、なんとなくメモ。CakePHP 1.2.3.8166の...
CakePHP

$session->flash()すると出てくる1を表示させない方法

SmartyViewを導入したCakePHPの環境下では、普通にビューテンプレートで{$session->flash()}と書くと、メッセージがセットされている場合に1が一緒に出力されてしまいます。これの回避方法を考えてみました。CakePHP 1.2.3.8166 + SmartyView 1.2...
CakePHP

SQLite3を使えるようにする【してやんよ】

現在リリースされているCakePHPはSQLite2にしか対応しておらず、SQLite3はそのままでは使えないので、使えるようにしてみました。なのでちょっとメモ。CakePHP 1.2.3.8166 Stableにで確認。
CakePHP

今更PHP4.3.2+PostgreSQL7.3で CakePHP1.2.5をどうしても動かしたい!(1日目)

仕事でやることになるかもしれない某サイトリニューアルの商品カタログのシステム開発でCakePHPを使おうとしたら、四苦八苦(><;
CakePHP

Model::deleteAll()の落とし穴 第3の引数

指定の条件に一致したレコードを一掃するのに便利なModel::deleteAll()。公式のマニュアルを見ると第1引数に削除対象のレコードの条件、第2引数には関連モデルの削除をするか否かの真偽値となっています。The Cookbook :: 1.2 Collection :: The Manual ...
CakePHP

携帯端末向け出力文字コードの変換

今PCと携帯向けの両方を含むサイト作ってます。CakePHP導入してます。PC用はUTF-8で出力して携帯向けにはSJISで出したい。やっぱりソースはUTF-8じゃないと都合が悪い!って思って調べてみましたんでメモ。でも、なんかうまくいかない・・・ぞ?