2009/06/05 by マッチー
CakePHPでプログラムを組んでいるとき、controller内で同じソースを書く場面が何度も出てきていたので、そういうのって共通化して使うことができないのかな~と何度も思ったんですが、やっぱりできるんですね。そりゃできるよね。だってCakePHPだもん。
beforeFilterってのを使うと、それができるらしいです。
function beforeFilter() {
共通で使うソースを書く
}
function add() {
}
function edit(
続きを読む
2009/06/04 by マッチー
CakePHPの中身を見てみると、viewsフォルダの中にelementsというフォルダがある。
この中に適当なctpファイルなどを作っておくと、renderElementでそのファイルを読み込むことができる。ページ内の共通部分などをここで作っておくと、何度も使いまわせるので効率が良くなる。
……と、書いてはみたものの、実はまだあまり活用したことがない部分だったりします。これを知ったときは意外と使う機会が多そうだぞとか思ったんですけどねぇ。
昨日も、Ajaxを使ってエレメントの内容を書き換
続きを読む
2009/06/03 by マッチー
唐突だけれど、今、UserとCategoryがhasAndBelongsToMany(以下HABTM)で関連づいているとする。
この場合、usersテーブルとcategoriesテーブルの他に、両者を関連づける結合テーブルというのが別に必要になる。この結合テーブルには、インデックスとなるidの他に、user_idとcategory_idのカラムを用意してやる必要がある。
ちなみにCakePHPの命名規約に従うなら、結合テーブルには結合する二つのテーブルの名前(複数形)をアンダーバーでつなげた
続きを読む
2009/06/02 by ゴウ
CSSでborderをつかって囲みを表現する時ってよくあるんですが、たとえば以下みたいな場合、
上部のタイトル部分は画像をペタって置くかなんかして、その下のBOXはCSSで1pxの線を引くのが一般的かと思うんですが、まぁその時の書き方について、気がついた事があったのでメモ。
/* 四隅に1pxの線を引く */
.hoge{
border:1px solid #ccc;
}
これが一番省略できる書き方。四隅に同じ条件の線を引く場合はこうやって書きます。
でも、上の画像のような場合
続きを読む
2009/06/02 by マッチー
$this->User->saveall($this->data, array('validate' => 'first'));
アソシエーションで関連づけられていると、上記のようにsaveallを行うと関連づけられているものも一緒にデータの登録が行われる。登録したくないと思っていてもcakeはなかなか気配り上手なやつなので、気を利かせて勝手にバリデーションやらデータの登録やらを行ってしまう。
そういうとき、unbindModelを使うと、一時的にアソシエーシ
続きを読む
コーディングをしているとjavascriptを記述する場面もよく出てくるのだが、prototype.jsというライブラリを使うと、javascriptを書くのが楽になるようだ。
例えば、非常によく使われるdocument.getElementById(id)関数なんかは、$(id)と書くだけでよくなるし、document.getElementById(id).valueなんかも$F(id)と書くだけでよくなる。document.getElementById(id)は、javascriptを記述
続きを読む