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