2010年7月22日木曜日

【CakePHP関連】ヘルパーによって生成したラジオボタンの初期値の設定方法

何気によく忘れるので備忘録します。

radioメソッドの第3引数に
array('value'=>'1')といった具合に指定してあげるといけます。

以上

2010年7月21日水曜日

【CakePHP関連】オリジナルレイアウトのタイトルを設定する際の注意事項

時間をつぶしてしまったので備忘録します。

CakePHPではオリジナルのレイアウトを設定できますが
その際にページタイトルを各コントローラーのアクションメソッドごとに設定ができます。
Webで調べてみると
$this->pageTitle で設定できます、的なことが書いてあったので
下記のように記述
$this->pageTitle('タイトル');

できませんでしたorz

正確には
$this->pageTitle = 'タイトル'; でした☆

また、ctpファイル(テンプレート的なもの)でもタイトルタグの間に
<?php echo $title_for_layout; ?>と書きましょう。
私はこれを<?php echo $title_for_Layout; ?>となぜか大文字で書いてしまい
またまたできませんでしたので・・・

まとめ
コントローラー内では
$this->pageTitle = 'タイトル';

ctpファイルでは
<?php echo $title_for_layout; ?>

以上です。

2010年7月15日木曜日

【CakePHP関連】findメソッドにてDISTINCTを利用するには

コントロール内でfindメソッドよりデータをセレクトする際に
Distinctを利用する方法です。

findメソッドの引数であるfieldsにdistinct (フィールド名)と記述するだけです。

便利ですね~~、CakePHP☆

2010年7月10日土曜日

【CakePHP関連】自前のSQL文を実行するには

CakePHPにはfindメソッドに代表されるように
ある程度SQL文を書かなくても、SQL文を発行できるようになっていますが
かなり細かく指定する際は直接記入した方がいい場合もあります。

そこで、方法が無いか調べてみると有益な情報がありました。

findBySqlメソッドを利用する

単純に findBySql($Sql)で
$Sql=Select~~

でいけるみたいです。

~2010.07.21追記~
上記方法ですが・・・どうやら間違いのようです!!

正しくはqueryメソッドを利用する のが正解のようです・・・
お詫びして訂正いたします。m(__)m

2010年7月9日金曜日

【CakePHP関連】ajaxヘルパーのobserveFieldメソッドについて

ajaxヘルパーのひとつであるobserveFieldメソッドですが
監視するフィールドと、更新したいdivのidを同じにすると動きません・・・


今考えれば当たり前なのかもしれませんが、時間を潰してしまったので
備忘録します。

2010年7月6日火曜日

【CakePHP関連】コントロール内で処理を抜ける方法

通常ですと
exitを利用しますが
Cake流の書き方があるのかなと気になって調査しました・・・が、
特に無いようです。

普通に
exit();

でいけるっぽいです。

情報が入り次第更新したいと思います。

2010年7月3日土曜日

【CakePHP関連】ヘルパー内で別のヘルパーを利用する方法

カレンダーヘルパーを自作していますが
Ajax的な動きが必要なので、Ajaxヘルパーを利用するため調べました。

やり方は

$helpersメンバ変数を用意するだけ

意外とあっさりいけました。
今回の例で行くと

public $helpers = array('html','javascript','ajax');

これでいけます。
ただし注意点として
「読み込まれるヘルパーのインスタンスは$this内のメンバ変数になる」
ということです。
なので使用するときは

「$this->ajax->~~~」

って感じになります。

【PHP関連】連想配列からキーの値を取得する

連想配列から、キーの値のみを取得したいことがあったのでGoogle先生に聞いてみると
以下のサイトより情報を頂きました。

初心者のPHP入門
http://php.quus.net/

ありがとうございます。

http://php.quus.net/array/key.php

key-配列関数:キーを取得

key関数は連想配列からキーを取得してそのキー返す関数です。
以下にkey関数の使用例を示します。
//key (配列);

$ar = array("PHP" => "PHP5", "CGI" => "PERL");
// ① //
echo key($ar);

next($ar);

// ② //

echo key($ar);
in_array関数は現在位置の要素のキーを返します。
したがって、①では一番最初の配列要素のキーである PHP が返されます。

②はnext関数によって内部配列ポインタが次に進められている為、連想配列のキー CGI が 返されます。

忘れないために備忘録しておきます。