CakePHP2009/05/25マッチー
今日はちょっとだけ前回の更新に関係があると言いつつもCakePHPに関する事柄というよりはソースを書く上での個人的な意見なのだけど、CakePHPでコーディングをしていると、配列が非常によく出てくる。それも多次元配列である場合が多い。配列の中に配列があって、その中にさらにまた配列があって・・・・・・と、配列の次元(っていう表現で良いのか?)が増えれば増えるほど、見づらい。自分で書いたソースなのに、どうなっているのかパッと見じゃ分からなくなることもままあったりする。 この多次元配列、どう書くのがCakePHP2009/05/21マッチー
送信したデータを保存するとき、saveじゃなくてsaveallを使えば、アソシエーションによって関連付けられたモデルのデータも一緒に保存することができる。 ただ、hasmanyで関連付けたデータは整数のインデックスがついた配列で渡されるので、ちょっと注意が必要。 たとえば、userとclientというモデルがhasmanyで関連付いているとして何か適当なデータを送ると、$this->dataにはこんな感じでデータが入る。 array([User] => arraCakePHP2009/05/20マッチー
何かしらの入力画面の中にセレクトボックスがあったとする。 ボタンを押してデータを入力する際、エラーがあれば入力画面に戻ってくるのが一般的だと思うけれど、その際に入力したデータは保持されているのが望ましい。エラーのたびに一から全部入力し直すのはだるいもんね。 それでセレクトボックスなんですけど、cakePHPはちゃんとセレクトボックス用のヘルパーも用意されている。たいしたやつだ。 <?php echo $form->select($fieldName, $options =CakePHP2009/05/18マッチー
MySQLでどうしても文字化けが直らない localhostでDBにデータを格納する際に、実は全角文字がずっと文字化けしていたのだけど、それはphpMyAdminの中だけで、実際にphpファイルの中でデータを出力すると問題なく入力したデータが表示されていたので、基本的にこの問題についてはずっと無視していた。 でもまあ、いつまでも放っておくのもあれかなと思い、文字化け問題の解決に乗り出すことにした。 文字のエンコードはUTF-8。eclipseを使って各ファイルを生成する際にもちゃんとUTF-CakePHP2009/05/15マッチー
僕が現在CakePHPの練習のために作っていたブログシステムは、本当にシステムだけのものなので、基本的に画像がない。個別の記事に画像をアップロードした場合にしか画像がない。 でもたいていのサイトって、画像つきのリンクがあると思うんです。サイトの一番上にある画像なんかは、トップに戻るリンクになっている場合がわりと多いんじゃないかと思うんです。このサイトもそうです。上の地球をクリックすれば、トップページに飛びます。 ところでこれ、地球だよね? 実は我々の銀河を飛び越して、ご近所(230万光年くらCakePHP2009/05/14マッチー
CakePHPはどうやらログインの際のパスワード認証などをやってくれる機能も実装されているらしい。 AuthComponentというのが、そう。 それがどういうものなのかは、こちらを読むと良いと思う。 暗号化などもやってくれるので、使い方を覚えれば大変便利だと思われます。 ちなみに、僕は最初、このページのソースを丸パクリしたのに、ヘッダーがすでに出力されている、みたいなエラーが出てました。何度見直しても間違っていないのにエラーはなくならない。これはどうしたもんかと思っていたけれど、分かっCakePHP2009/05/11マッチー
前回、フォームのヘルパーを使えばsubmitボタンとend formタグが一行で書けると言ったけれど、これを使って書くと、自動的にdivで囲われることに気づいた。 <?php echo $form->end('送信') ?> これは、HTMLで記述すると以下の内容になる。 <div class="submit"><input type="submit" value="送信"></div> </form>CakePHP2009/05/08マッチー
CakePHPにはformに関するヘルパーもいろいろあるので、無理にHTMLタグを自分で書かなくても良い。しかも、使い方を覚えてしまえば、HTMLタグを書くよりもソースがお手軽な面も結構あるっぽい。 <input type="submit" value="送信"> </form> フォームを作成すると、だいたい最後の方はこんなタグを書くことになると思うが、ヘルパーを使えばこれは一行で書ける。 <?php echo $form->end("送CakePHP2009/05/07マッチー
ブログで新規に記事を投稿する際には、投稿した時間をDBに登録する必要がある。いや、まあ必須ではないのかもしれないけど、たいていのブログにはそういうのがあると思う。某ブログでは、この投稿時間の下一桁の数字によってアクセス数がだいぶ違うとかそうでないとか? ついでに、投稿されている記事を編集した場合も、編集した時刻を登録する必要がある。いや、まあこちらも必須ではないのかもしれないけど、たいていn(ry この投稿時刻と編集時刻、最初はFormHelperのdateTimeメソッドを使うのかなと思いCakePHP2009/04/30マッチー
日々の奮闘を書いてチュートリアルとしても役立てようと思ってこのブログに日々やっていることをつらつらと書いていこうと思いつつ、たいしたことも書かないまま現在作成中のブログシステムができた……かどうかはかなり怪しいところなのだけど、一応ログインができたり記事やコメントが投稿できたり記事の検索ができたりページ移動ができたりはするので、とりあえずは一区切り。今度はこのブログシステムをCakePHPを使って作り直すというのが、次なる課題。作り直すといっても機能は特に変わらないので、書き直すというのが正しい