CakePHP2009/07/28マッチー
単一のモデルにおいて、複数のレコードをまとめてアップデートしたいようなときには、updateAll()を使うといい。 構文的にはこんな感じ $this->Model->updateAll($fields, $conditons); $fieldsには更新したいフィールドの値を、$conditionsには更新したいレコードの値をそれぞれ配列で入れる。 たとえば、usersというテーブルにageとseijinという二つのフィールドがあるとする。どちらもint型で、ageにCakePHP2009/07/27マッチー
ちょいちょいHABTMを使うわりに(まあ、まだ2回しか使ったことないけど)毎回やり方を忘れるのでメモ。 っていうか、初めてHABTMを使ったときはいろいろつまづいたので、データ保存に関する記事もきっと俺は書いているだろうと思っていたら、実は書いてなかったというね……ま、そういうこともあるさ。 一例として、複数の人にメルマガを配信する、それも常に全員に同じメールを配信するのではなく、たまには特定の人にだけ配信したいような画面を作っていて、誰にどのメールを配信したのかをDBで管理したいと思ったときCakePHP2009/07/25マッチー
たとえばUserとPostという二つのモデルがあり、それに対応したusersとpostsという二つのテーブルがあったとする。 ここで今、Postモデルでusersテーブルに入っているデータを取ってきたい、そんな衝動に駆られた場合には、App::importを使うといいっぽい。 <?php class Post extends AppModel { var $name = 'Post'; function test() { App::CakePHP2009/07/21マッチー
どれだけ使う機会があるかどうかは分からないけれど、今日たまたま、2つの月の差を出したいという状況に出くわしたので、ちょいとメモ。ブログの月別アーカイブなんかを作るときに使えるかもしれない。セレクトボックスで月を選択するとその月の記事の一覧に飛べる、みたいなね。 ここでは、ブログの記事が2009年1月から今日(2009年7月)まで存在すると仮定しよう。 $date = strtotime('2009-01-01'); $month1 = date('Y')*12 + date('m')CakePHP2009/07/18マッチー
基本的に、行いたい処理を順番に書いていけばプログラムは動くわけですが、しかし長くなればなるほど、きちんと整理して書いておかないと、後で見たときにどこでどんな処理を行っているのか分からなくなってくる。 僕もまだソースの書き方は下手で汚いので、ちょっと長いソースを書くとすぐにスパゲッチーになる。ぶっちゃけ、バグとか見つかって修正するときに、どの部分を修正していいのか分からない。というか、自分で書いておきながらソースを追うのがめんどい。見てるといらいらする。 そうならないためにはどうするか。 まCakePHP2009/07/10マッチー
CakePHPにはデフォルトでいくつかのバリデーションルールがあるので、それを使えばメールアドレスの判定やら必須項目のところが空になっているかどうかの判定やらが簡単にできる。 特に正規表現だか何だかを使ってメールアドレスの判定をするのはかなり大変らしい。以前、どこかのサイト(どこだったかはちょっと忘れちった)でメールアドレスの判定のための正規表現が書かれているのを拝見させてもらったことがあるけれど、もんのすごい長くて正直見るのが嫌になった。あれはもうソースコードのレベルじゃねえよ。ページ全体が2009/07/02マッチー
今まであまり意識したことなかったんですけど、ホームページのアドレスって一番最後にスラッシュ『/』がついている場合とついていない場合があるじゃないですか。 http://astrodeo.com/blog http://astrodeo.com/blog/ 両者に違いなんてない、ていうか別に一番最後にスラッシュをつける意味なんてないんじゃないのとか思ってたんですけど、そんなことはなかったんですね。 末尾にスラッシュをつけるのは、それがディレクトリであるという認識になるみたいですね。CakePHP2009/07/01マッチー
新しいプロジェクトをやるたびについつい忘れちゃうので、次こそは忘れないぞという思いを込めてメモ。 プログラムができた~と思ってサーバー上でテストなどをしてみると、僕の場合、必ず最初にSecurity.Saltがどうたらこうたらというエラーが出てしまう。これはapp/config/の中にあるcore.phpというファイルを見ると分かるのですが、150行目くらいにこんなことが書いてある。 Configure::write('Security.salt', 'DYhG93b0qyJfIxfs2