Life is Really Short, Have Your Life!!

ござ先輩の主に技術的なメモ

CakePHP

modelをsetSourceした時はaliasにも気をつけよう

Cakephp1.2の話。 modelで参照するTableを動的に変更するために、cakephpのmodelにはsetSourceというメソッドがあります。 そいつを実行すると確かに$this->find()ってやるとテーブルが変更されているが、戻ってくる配列のKeyが変更されていないことに気づい…

cakephp1.2でqueryした時のエラーをキャッチしたい

cakephp->version:1.2.2.8120 cakephpのofficialではonError()なるコールバックメソッドがあると書いてあるが、こいつが呼び出されるのはfind,read,saveといったアソシエーション上で利用できるメソッドのみだった。libs/model/datasources/dbo_source.phpを…

cakephp1.2でpaginateで複数のModelを使いたい

cakephp_version:1.2.2.8120 ちょっとハマった。bindmodel()/unbindModel()を使って一時的にアソシエートしている時に注意。 paginate = array( 'A' => array( 'conditions' => array(), 'limit' => 20, 'order' => array('A.id' => 'desc'), 'joins' => arr…

Hiddenで配列を渡してゲットしたい

ま、そんなこともあるよね、人間だもの。良くわかんないけどこんなんでいいんジャマイカ。 hiddenで配列を作るためには、こんな感じにしなくてはならぬ。 <input type="hidden" name="hoge" value="1"/> <input type="hidden" name="hoge" value="2"/> <input type="hidden" name="hoge" value="3"/> とりあえずこうやってみた。 hidden("hoge",array("value"=>1))?> hidd…

cakephp1.2で明示的にJOINさせるやり方

cakephpのversion:1.2.2.8120 今回JOINしたかったのは、A、B、Cという3つのテーブル。 JOINの条件としては、「A.id = B.A_id」と「B.id=C.B_id」というもの。A→BがhasManyでB→CがBelongToと言えば分かりやすいと思う。 こーゆー時はアソシエーションで頑張って…

cakephp雑感とかtips~その1~

適当に思ったことを書く。 controllerはできる限りスリムにする。 controllerで$this->[MODEL_NAME]->findXXXとかサンプルやチュートリアルで書かれているもんだから、僕も多分にもれずそう書いてきたんだけど、これって良く考えたらビジネスロジックじゃん…

cakephp1.2で、検索条件を絞り込んだ場合のページング

多分コレでいいんジャマイカ。 検索条件をPOSTで送って絞り込んでいる場合(僕の場合は日付のFromTo)、ページングで次へ次へとクリックしても検索条件が引き継がれなかった。色々考えたが、手っ取り早くSessionに入れて引き回せばいいやという考えに落ち着い…

cakephp1.2でラジオボタンを初期選択させる方法

ぐぐっても情報が古いんで、自分でソース読んで調べた。簡単だった。ソースはcake/libs/view/helpers/form.phpね。大体890行目近辺。 value($fieldName); } $out = array(); foreach ($options as $optValue => $optTitle) { $optionsHere = array('value' =>…

CakeMailでWebrootがUndefined Propertyになる件

cakephpのコンポーネントでCakeMailというのがあるのですが、今それを使わせて頂いてHTMLメール作ってます。 CakePHPでメールを送信する - Webプログラマー+WebデザイナーなZARU日記 で、コメント欄でも困っているヒトがいたのですが、CakeMailをそのまま使…