CakePHPMySQLPHPウェブサービスサイト発表2010/02/01マッチー
真面目にエロサイトを作ってみた【デザイナー編】はコチラから。 エロサイトを作るにあたって 「スタイリッシュなアダルトサイト思いついたから作るぞ」 (たぶん)そんな感じの一言で始まったSheCoolのサイト制作。見た目がどれくらいスタイリッシュかってのはデザイナーの裁量次第なので、自分の担当はあくまでもシステム部分。発案者の意にできるだけ添えられるように、未熟ながらも自分の技術力を駆使してサイト制作に乗り出しました。 デザインの前に、とりあえず大まかな仕様を決めた時点で、今までやっCakePHP2010/01/26マッチー
二つのテーブルがHABTMで関連づいている場合、関連づいている相手のテーブルのフィールドを指定するには、コンテイナブルというビヘイビアを使うと良いらしい。 ビヘイビアを使用するには、モデルにビヘイビアの指定を追加しても良いし、特定の箇所でしか使わないような場合はコントローラーで追加しても良い。 //modelで追加する場合 class User extends AppModel { var $actsAs = array('Containable');CakePHP2010/01/14マッチー
通常、CakePHPでページング処理をしたい場合は $this->paginate('Model'); で簡単にできる。 HABTMの場合でも基本的にはこれを使えばOKだが、HABTMの中間テーブルのモデルを作ってやる必要が出てきたりするので、ちょびっとだけ戸惑う。 たとえばユーザーとカテゴリを紐づけているcategories_usersというテーブルがあった場合 $this->CategoriesUser->bindModCakePHP2009/12/22マッチー
CakePHPで開発をする際、デバッグの値を2とかにするとページの最下部に投げたクエリの結果などが見られる。 これは大変便利なのだけど、作っているサイトのデザインとかによっては見づらかったりするし、意外と邪魔だなって思うこともある。しかしデバッグを0にすると本当に正しいクエリを投げているのか確認できなかったりするから、それはそれで困ってしまう。 なので、できればこの実行結果などを別のところで見られれば良いなぁと思うわけです。 そこで今回オススメしたいのがこちらの商品。FirePHP。 (リCakePHP2009/12/17マッチー
コントローラーにindex()やadd()などの関数を書けば、URLに/controller/indexや/controller/addなどでそのページのファイルが呼ばれるが、内部だけで使いたい、URLから取得されたくないような場合は、関数の先頭にアンダーバーをつけると良い。 <?php class SampleController extends AppController { function index() { /sample/index、/sample/CakePHP2009/12/14マッチー
findメソッドでMySQLのDISTINCTを使いたいときはfieldsにDISTINCTでカラムを指定してやれば良い。 $params = array('fields' => 'DISTINCT user_id'); $this->Model->find('all', $params); さて、ここでfind('all')ではなくてfind('count')の場合、上のようにパラメータを指定すると、 Object of class stdClass couCakePHP2009/12/08マッチー
CakePHPで検索結果の表示ページなどにページング処理を行う際、検索結果が何件で現在は何件目が表示されているかみたいなのを表示させたいことはままあると思う。 paginatorヘルパーにはcounterというメソッドがあって、たとえば検索結果の合計数は%count%という定数に入っている。なので、view側で <?php echo $paginator->counter(array('format' => "全%count%件")) ?> //実際の表示 全1CakePHP2009/12/03マッチー
CakePHPでDBからレコードを取得したり逆に入力したりする際にはfindやsaveというお手軽なメソッドがあるのでとても便利。 だけど、結構複雑なクエリーを投げなきゃいけないとなると、どう書けば良いのか分からなくなる場合も意外とあったりする。findの条件指定のときとか。BETWEENとかLIKEなんかも、一度知ってしまえばたいしたことはないのだけど、知らないとわりと悩む。少なくとも自分は悩みました。 どうしても困ったら$this->query()で直接SQL文を書いちゃえば良いのCakePHP2009/09/01マッチー
CakePHPで静的なページ(静的とは限らないけど)を作っていてわりと悩むのがパンくずリストの作り方。パンくずリストってページの下層の方のリンクになれば完全に個別ですけど、トップページへのリンクの部分なんて、どのページでも一緒じゃないですか。 だから僕の場合はelementsにpankuzu.ctpみたいなファイルを作って常にそれをrenderElementするようにしてるんですよ。あとはスイッチ文を使って、コントローラーごとに表示を分けるような感じで。 <?php sCakePHP2009/08/26マッチー
検索条件や一覧の表示件数を引き継いでページング処理をしたいときって、結構あると思います。 例えば、「テスト」という検索ワードを保持してページ遷移したいとする。 <?php $paginator->options('url' => array('word' => 'テスト')) ?> viewファイルに上記の一文を書いておくと、ページ遷移したときに配列の中身が飛んでくるので、それを使えば良い。確か飛んできた値は$this->params['name