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/02 by マッチー
今まであまり意識したことなかったんですけど、ホームページのアドレスって一番最後にスラッシュ『/』がついている場合とついていない場合があるじゃないですか。
http://astrodeo.com/blog
http://astrodeo.com/blog/
両者に違いなんてない、ていうか別に一番最後にスラッシュをつける意味なんてないんじゃないのとか思ってたんですけど、そんなことはなかったんですね。
末尾にスラッシュをつけるのは、それがディレクトリであるという認識になるみたいですね。
続きを読む
2009/07/01 by マッチー
新しいプロジェクトをやるたびについつい忘れちゃうので、次こそは忘れないぞという思いを込めてメモ。
プログラムができた~と思ってサーバー上でテストなどをしてみると、僕の場合、必ず最初にSecurity.Saltがどうたらこうたらというエラーが出てしまう。これはapp/config/の中にあるcore.phpというファイルを見ると分かるのですが、150行目くらいにこんなことが書いてある。
Configure::write('Security.salt', 'DYhG93b0qyJfIxfs2
続きを読む
2009/06/25 by マッチー
$this->render('/elements/calender');
こういう書き方をすると、elementsの中にあるテンプレートをレンダリングしてくれる。
今日、ポップアップウインドウでカレンダーを表示させる機能を作っていたんですけど、カレンダーのテンプレートはどのページから呼んでも同じだから、こんなようなことができないかなと思って調べてみたら、やっぱりありました。そりゃあるよね。これくらいの機能なら。
別に分かりにくい機能とかではないけれど、これから先もきっとこいつ
続きを読む
2009/06/24 by マッチー
通常、DBの設計の際には、照合順序をUTF-8にしておけば何の問題もないと思っていたのだが、CPIというレンタルサーバのDBを扱う際、照合順序も全部ちゃんとUTF-8にしているのに、文字化けが直らないという問題が発生した。原因が全く分からずに、かなりの時間、悪戦苦闘した。正確にいうと、悪戦苦闘していたのは僕じゃなくて先輩プログラマーのヅヤさんがですけど。
で、原因を調べているうちに我流天性さんというサイトに行き当たり、その解決法も書いてあったので参考にさせてもらった。
どうやらあそこは、文字
続きを読む
2009/06/23 by マッチー
つい先日、フォームヘルパーを使ってチェックボックスを作ったのだけど、どうやらlabelの指定ができないっぽく、書き方としてはこんな感じになってしまった。
<?php echo $form->checkbox('check') ?><label for="Check">チェックボックス</label>
なので、ラジオボタンも同じ感じなのかなぁと思っていたら、実はそんなことなかったんですね。
<?php echo $form->
続きを読む