CakePHP

CakePHP

[Cakephp2]Cake plus の罠

Cake plus は大変便利なプラグインです。フォームデータをhiddenで引き継ぐのは、いちいちhiddenメソッドを書かなくてはいけないため非常に面倒ですが、このプラグインを使うと$this->FormHidden->hiddenVa...
CakePHP

[cakephp2.x]セッションの保存先をDBするときにハマった件

表題の件。cakephp2でセッションの保存先をDBにする場合。core.phpでSessionの設定を下記に変更してConfigure::write('Session', array(//'defaults' => 'php''defau...
CakePHP

[cakephp2]外部ファイル更新時のキャッシュについて

css等を更新したときに、名前を変えないとキャッシュが効いてしまって変更が有効にならない場合、以前の記事でSVNのバージョン番号を付与するように改造するといいという記事を書きました。しかし、実はもっといい方法が用意されていました。core....
CakePHP

[cakephp2.x]APC利用時のan internal error has occurredエラーについて

cakephp利用時にan internal error has occurred.が出てしまうことがまれにあります。困ったことに、このエラー、根本的な原因がわからないことが多い。たいていの場合はキャッシュとモデル(テーブル)の問題でtmp...
CakePHP

[cakephp2]modelのソートでrand()を使う場合の注意

たとえば、ランダムにデータを取得したい場合。$this->(model)->find('list',array('order'=>array('rand()'))); とするとSQLでは... rand() ASC ... などとなってしま...
CakePHP

[CakePHP2.x]adminルーティング時のリンク指定

adminルーティングした場合にリンク等でURLを指定したい場合。パラメータをどうしたらいいかわからず詰まってしまった。まぁ、'/admin/hoges/action'といった感じで指定してもいいのですが、配列で指定する場合は下記のようにな...
CakePHP

[CakePHP]外部ファイルにバージョン番号を付加してキャッシュ問題を解決する方法

CakePHPに限らず、CSSやJSファイル等を更新した場合、キャッシュが効いてしまい最新のものが読み込まれない場合があります。この場合、ファイル名を変えればいいのですが、それはすごく大変です。そこで、下記のようにバージョン番号を付加してし...
CakePHP

[cakephp2.x]shellの中でviewを使いたい

まれに、shellの中でhtmlファイルを生成したいことがあります。また、htmlメールを送信したい場合もあるでしょう。一応、shellの機能の中にテンプレート機能があるようなのですが、使い方の情報が少ないのと、いまいち使い勝手が悪い。通常...
CakePHP

[cakephp2.x]ヘルパーでヴァリデーションエラーの内容を見たい

ヘルパーでヴァリデーションエラーの内容を見たかったのだがどうやってアクセスしていいかわからない。ヘルパー内で$thisのダンプをとっていって何とか見つけました。$this->_View->Form->validationErrorsここでア...
CakePHP

[cakephp2.x]pagenateのカウントがおかしい場合。

pagenateのfiledsでDESCENTやgrop byを使うとカウントがおかしくなってしまう場合。AppModel.phpに以下でpaginateCount()関数をオーバーライドすればいい。function paginateCou...
CakePHP

[CakePHP1.2]Cakeでレプリケーションを使う場合

config/database.phpにマスター、スレーブのdb接続設定を以下のように追加する。例$default=array(DB設定); //スレーブ$default_master=array(DB設定); //マスターsaveなどの保...
CakePHP

[CakePHP2.x]modelの連想配列にモデル名が入ってこない件

CakePHP2.x系+CentOS6系の組み合わせだと、なぜかmodelの連想配列にモデル名が入ってこない場合があるようです。どうもPDO.MySQLとMySQLの組み合わせで、あるAPIでテーブル名がうまく取得できない場合があるため、そ...
CakePHP

[CakePHP1.2]モデルのテーブル名を動的に切り替える

モデルで使用しているテーブル名を動的に切り替えるメソッド$this->Model->setSource(table_name);マージテーブルなどで年代別に複数のテーブルに分割している場合などで、特定のテーブルのデータを取得したいときに使え...
CakePHP

気になるサービス&モノ(5月号)

やたらと安いVPS。最低価格490円/月安すぎる・・・。データセンター(つまりサーバーの場所)を東京、大阪から選べるのもうれしい。VPSだと、大概何も設定されておらず、自分でアプリを入れたり設定したりが必要だが、ここのサービスはある程度初期...
CakePHP

[CakePHP]メールコンポーネントの使い方

CakePHPで便利なメールコンポーネントですが、文字化け等で少しはまったのでメモ書きまず、コンポーネントをロードvar $components = array('Email');送信方法ですが、ポイントは、文字コード変換は自前でやったほう...
CakePHP

scpで自動応答コピー

scpでパスワードなしでスマートに接続する方法クライアント側まず鍵を作成ssh-keygen -t rsa鍵を相手のサーバーにコピーscp ./id_rsa.pub (user)@(相手のサーバー):/home/(user)/.ssh/au...
CakePHP

[CakePHP]FormHelperの初期値

formhelperの日付指定の定義値を変更する場合、以下のようなコードを追加すると変更できる。$this->form->options = array();for ($i = 1 ; $i < = 12 ; $i++) {$this->f...
CakePHP

[CakePHP]NULLデータをコミットする

リストボックスなどで未選択の場合にデータとしてNULLを設定したい場合、空白のデータがなぜか"0"で保存されてしまいます。この場合、modelのbeforeSave()メソッドで以下のような処理を行えば良い。function beforeS...
CakePHP

CentOS5.6でXdebug+EclipseでPHPデバッグ環境構築

作業効率化のために、長年の課題であったPHPでステップ実行を可能にする設定を試してみた。まず、firewallだのSElinuxだののセキュリティーがらみの設定は一旦OFFにしておくことをお勧めします。xdebugのインストール#pecl ...
CakePHP

[CakePHP]フォームのラジオボタンのデザイン

CakePHP1.2での動作です。Viewでラジオボタンの表示は以下のような文になるかと思います。$form->input('flg',array('options'=>array('0'=>'ON','1'=>'OFF') ));しかし、...