サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
都知事選
cakephp20sysnsa.blogspot.com
今まででCakePHP2.1の基礎の部分を勉強してきたんで、そろそろ実践しながら学んでいこうと思う。やっぱり実際に作りながら覚えるのが一番だよね。 こういう場合一番いいのが簡単なブログを作ってみるっていうのだと思うけど、それはCookBook2.xに日本語版でも詳しく載ってるので、何つくろうかなって5秒くらい考えた結果、ブログの次に簡単そうで色んな人もやってる郵便番号検索をぼくも作成してみることにした。 多分、郵便番号検索を作ってみるメリットはこんな感じであると思う。 ・大量のデータを扱える ・DBに登録するデータは簡単にDLできる ・ただ郵便番号を検索するだけなら比較的作りが簡単(多分ね) ・後で複雑な検索も付け加えられる(と思う) 今回はあくまでもcakePHPの練習用として作成するわけだし、「データをcakePHPのモデル内で加工する」ってこともやってみたいから郵便番号をdecima
今回はbelongsToに関して。多対一の結合で、正規化を実装するものだからおそらくはhasManyと並んで一番使うアソシエーションになるんじゃないかなぁって気がする。 基本はhasOneとほぼ同じ belongsToは(LEFT)JOINでの結合を行う。これは、実はhasOneの結合方法と同じで、その動きも返される配列の形も殆ど変わらない。 両者の決定的な違いはbelongsToは外部キーを自身が持ち、hasOneは相手(アソシエーション先)が持つということみたい。 アソシエーション外部キー hasOne相手が持つ belongsTo自分が持つ 例えばBlogUser、Blogというモデルがあるとして、Blogに外部キーがある場合、以下の設定はほぼ同じ動きをする。 //Model/BlogUser.php <?php class BlogUser extends AppModel{ va
cakePHPにはページネーションという便利な機能が搭載されてるらしい。 それを使うと、簡単にページの分割やリンクによるソートなどができるようになるそうな。というわけで、今回はそのページネーションについてまとめる。 使い方 主にコントローラー内とビュー内で使用する。 コントローラー内での操作 基本の使い方は以下の通り。 $data = $this->paginate() ずいぶんと簡単でございますね。上記の場合、命名規約により自動的にコントローラーに対応するモデルが選ばれ、$this->Model->find('all')と同じリクエストが発行されてデータが吐き出される。 なお、デフォルトでは20件のデータが呼び出されるみたい。あと第一引数にモデル名を指定することもできる。 【下記の結果は事実上同じ】//PostalCodesController内 $result = $this->Pos
今回は単一でのエントリ。hasOneを使ってみる際にテーブル結合の方法など色々と調べたので、それらをいくつかまとめてみる。 (まだ網羅するまでには調べてないから、あくまでも調べた範囲内でだけ。いつかまとめたいな) テーブルをJoinするには hasOne、belongsTo、hasMany、hasAndBelongToManyを使うことでテーブル結合を実装できる。 cakePHPでモデル(=DBテーブル)を簡単に結合できる方法としてこれらが用意されてる。 ちなみに、まとめてアソシエーションっていうらしい。直訳すると関連、または連合だね。多分関連という意味だろうけど、連合という言い方の方がかっこよくて中二病心をくすぐってくれるからその意味で使っていこう。観念連合っていう意味でもあるらしい。 アソシエーション結合タイプ外部キー結合方法 hasOne1対1の結合相手が持つ(left)join b
cakePHPだけでなく、フレームワークには命名規約っていうのがあるらしい。全員がそれに沿って作ることで、作業の分割化がスムーズにできるようになるのだとか。 今までフレームワークを触ったことがないぼくは、つい「面倒くさいな」って思ってしまうんだけど、そうしないわけにもいかないっぽいしね(完全無視でも非効率ながらできるっぽいけど)。そんなわけで、それぞれの命名の仕方をまとめてみた。 (以下、全部CookBook日本語版に書かれてることを単にまとめただけです。hasAndBelongsToManyやcounterCacheといった場合の命名規約はその際に書くとして今回は端折って基本と思える部分だけを書きます) 基本──キャメル型とアンダースコア型、複数型と単数型 cakePHPはこの4つの形を使って命名していくらしい。 ■キャメル型 senddata → SendData bigarea →
PHP5.3.3&CakePHP2.1&Mysql5.1.61環境で調べた内容を忘れない為のメモノート。OSはCentOS6です。 今回はbelongsToに関して。多対一の結合で、正規化を実装するものだからおそらくはhasManyと並んで一番使うアソシエーションになるんじゃないかなぁって気がする。 基本はhasOneとほぼ同じ belongsToは(LEFT)JOINでの結合を行う。これは、実はhasOneの結合方法と同じで、その動きも返される配列の形も殆ど変わらない。 両者の決定的な違いはbelongsToは外部キーを自身が持ち、hasOneは相手(アソシエーション先)が持つということみたい。 アソシエーション外部キー hasOne 例えばBlogUser、Blogというモデルがあるとして、Blogに外部キーがある場合、以下の設定はほぼ同じ動きをする。 //Model/BlogUser
前回は基本的なフォルダ構成についておおよそまとめた。それらの構成を見てるとどういう動きをするのかもおおよそ解ってきた(つもりだ)けど、やっぱりつもりじゃ何となく嫌だしある程度調べてみたので今回はそのまとめ。 ただ、大まかな流れを書いてるサイトは沢山あっても、どこの何を参照しながらcakePHPが構築されていってるのかというような詳しい部分を書いてるところはあまり見当たらない。 そこで、まずcakePHP内の表示部分に以下のコードを貼って呼び出される関数を追いながら調べてみようと安易な気持ちで考えた。 print '<pre>'; print_r(debug_backtrace()); print '</pre>'; debug_bactrace() <- 呼び出し元の関数やファイルをどんどんと追って行く まずは簡単なページを作成 ちょっと行程を飛び越えちゃうんだけど、CookBook2.x
cakePHPの命名規則に関してメモしようと思ったんだけど、その前にフォルダの中を見ているうちに一体どういう構造になっててどういう動きをするんだろうっていう方が気になったから、先にそっちをまとめておこうと思う。 大まかなことはcakePHP CookBook2.xに書いてあるんだけど、ちょっとフォルダ構成を見て気になったので。 あと、このページにも結構詳細に書いてあった。 cakePHP guide:HTTP リクエストに対する CakePHP の動作フロー 基本1:cakePHPはMVCフレームワークであること PHPフレームワークには結構多い構造らしいんだけど、cakePHPもMVCデザインを採用してるらしい。 これは主な処理の基本である「データ(DB)の取扱い」「描写」「リクエストと計算」をそれぞれ切り分けて作成していこうというもの。 要は今まで資料集めもプレゼン資料作成もスケジュー
前回はMVCの基本だけまとめたが、今回はcakePHPを構成しているパーツ全般とその場所に関してのメモ。なお、ぼくはcakePHPディレクトリをcake20とした為、ディレクトリの場所などは/cake20/appというように記述します。 全体の構造 appディレクトリ 基本的に作成したものは全てこの中に格納する。ここの詳細は下に記載。 lib/Cakeディレクトリ cakePHPのアプリケーションが格納されてる。いじらない方がいいらしい。 pluginsディレクトリ 既に開発されてるプラグインをいれるディレクトリ…と思うんだけど、appディレクトリ内にもPluginディレクトリがあり、CookBookでも「app/Pluginに入れてね」って書いてあるし、いつ使うのかはよくわからない(--;) vendorsディレクトリ 拡張ライブラリファイルを格納する、らしい。これもappディレクトリ内
前回でテーブルは作成したので、今回から(やっと)cakePHPで郵便番号検索の開発をしはじめてみる。ここからはモデルを作って、コントローラーを作って、ビューを作って…ってしていくのだろうけど、その前にScaffoldingがどういうのかやってみたかったから、今回ちょろちょろっと作成してみた。 Scaffoldingとは CookBook2.x(英語版)にそこまで詳しくない程度に載ってます。…というより後で気づいたんだけど、書いてる内容はCookBook1.3(日本語版)と殆どかわらなかった。かいつまんで書くと、Scaffoldingアプリケーションを使用するとデータの編集や作成、削除などが簡単にできて作成当初役立つらしい。たしかに、ウェブページを作成する時って必ずといっていいほど最初にいくつかデータを入れてテストするもんね。むしろそうしないと作り始められないし。 ちなみにScaffoldは
このページを最初にブックマークしてみませんか?
『CakePHP2.1初心者メモ』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く