【PHP】フレームワーク CakePHP 6ホール目【v1.2】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2009/03/09(月) 10:55:37ID:3PTy4GqZ※sage推奨
※日本語マニュアルURLを貼るときは、http://book.cakephp.org/ja/view/1/ のようにしましょう(末尾のエンコードされたタイトル部分は不要)
■本家
http://www.cakephp.org/
APIドキュメント
http://api.cakephp.org/
the Bakery
http://bakery.cakephp.org/
CheatSheet (PDF)
http://cakephp.org/files/Resources/CakePHP-1.2-Cheatsheet.pdf
■日本語公式
http://cakephp.jp/
フォーラム
http://cakephp.jp/modules/newbb/
cookbook(マニュアル)
http://book.cakephp.org/ja
0002nobodyさん
2009/03/09(月) 10:56:11ID:???【PHP】フレームワーク CakePHP 5ホール目【v1.2】
http://pc11.2ch.net/test/read.cgi/php/1229669539/
【PHP】フレームワーク CakePHP 4ホール目【v1.2】
http://pc11.2ch.net/test/read.cgi/php/1213892680/
【PHP】フレームワーク CakePHP 3ホール目【本命】
http://pc11.2ch.net/test/read.cgi/php/1205475360/
【PHP】フレームワーク CakePHP 2ホール目
http://pc11.2ch.net/test/read.cgi/php/1194976228/
【PHP】フレームワーク CakePHP
http://pc11.2ch.net/test/read.cgi/php/1163850802/
0003nobodyさん
2009/03/09(月) 10:56:29ID:???10分で作るCakePHPアプリ for Windows
http://p4life.jp/cake/
日本のcakePHP ユーザのためのハブサイト
http://cakephp-users.jp/
CakePHP 規約ワードメーカー WordMaker for CakePHP Conventions
ttp://www.cpa-lab.com/tech2/inflects/
あとこのへんとか(初心者向けTIPS)
http://www.avatarfinancial.com/pages/cake/
CakePHP Note
http://www.garacter.com/notes/CakePHP+Note/ni:5
CakePHP入門リンク集
ttp://pub.studio15.jp/2007/11/13/cakephp-links/
CakePHPを使ったMVC設計のベストプラクティス - Sooey
ttp://www.sooey.com/journal/2008/03/26/717/
Qdmail(日本語メールコンポーネントとして利用可能なライブラリ)
ttp://hal456.net/qdmail/
CakePHPカンファレンス東京
http://conference.cakephp.jp/
0004nobodyさん
2009/03/09(月) 10:57:11ID:???CakePHP プログラマーズ リファレンスガイド
http://cakephp.jp/doc/
連載:CakePHPで高速Webアプリ開発|gihyo.jp … 技術評論社
http://gihyo.jp/dev/serial/01/cakephp
CakePHPフレームワークによる快速WEB開発 |codezine
http://codezine.jp/a/article/aid/670.aspx
■関連書籍(対応バージョンは2009/02時点)
・ver1.2系
CakePHP ポケットリファレンス※ver1.2beta
http://www.amazon.co.jp/dp/4774135038
CakePHP徹底入門
http://www.amazon.co.jp/dp/479811717X
・ver1.1系
CakePHPガイドブック
http://www.amazon.co.jp/dp/4839924317
Fast CakePHP
http://www.amazon.co.jp/dp/4774133418
■関連スレ
【PHP】フレームワークについて語るスレ12【総合】
http://pc11.2ch.net/test/read.cgi/php/1229960175/
0005nobodyさん
2009/03/09(月) 10:57:55ID:???補足があればどうぞ
Have a Nice Cooking !
つか、なぜ前スレ落ちた?
0006nobodyさん
2009/03/09(月) 13:19:06ID:???例えば、A,B,C という3つのモデルが連携して、A_id と B_id が決まったら
C_id が返る、というようなイメージなのですが。
0007nobodyさん
2009/03/09(月) 15:20:58ID:VNswFz5T0008nobodyさん
2009/03/09(月) 16:46:13ID:???テンプレ作った人、乙です♪
0009nobodyさん
2009/03/11(水) 09:16:15ID:???$ajax->formと$form->endの間でreturn this.form.submit();
をやった場合には全部更新されてしまいました。
0011nobodyさん
2009/03/11(水) 13:40:54ID:???書きました。
form->endのボタンの場合はちゃんと指定部分だけ更新されるんですが、
その途中のform->selectのonChangeだと全部更新されてしまいます。
0012nobodyさん
2009/03/11(水) 15:34:20ID:57BlDi5P普通にmodifiedだけupdateなりすればいいかなとは思ってますが、おすすめの方法があれば・・。
0013nobodyさん
2009/03/11(水) 18:09:40ID:???値が正常にわたってないみたいです。
IPアドレスを渡す方法があれば教えてください
0015nobodyさん
2009/03/11(水) 19:06:24ID:???http://hogehoge/コントローラ/関数/引数(IPアドレス)/
に飛ぶとコントローラ側に値が入ってません。NULLになっています。
リンクを作る前にIPアドレスを適当な英語に変換して
また関数側で英語をIPアドレスに変換すればうまくいくんですが・・・
0017nobodyさん
2009/03/11(水) 20:50:52ID:???IPアドレス:ポート番号って値だったので。
なんとかして、そのまま受け取ることはできないかな
0018nobodyさん
2009/03/11(水) 20:54:25ID:???0019nobodyさん
2009/03/11(水) 23:38:14ID:???逆にコロンそのままじゃなきゃいけない理由はあるの?
/で区切るとか、置換するとか>18さんの言うとおりエンコードするとか・・
0020nobodyさん
2009/03/12(木) 00:14:51ID:???ありがとうございました。
0021nobodyさん
2009/03/12(木) 01:35:37ID:???0022nobodyさん
2009/03/12(木) 01:36:25ID:???0023nobodyさん
2009/03/12(木) 01:55:47ID:???0024nobodyさん
2009/03/12(木) 04:42:04ID:???page:1とかsort:createdとかが、見た目にクセがあるので
page=1&sort=createdみたいに普通のクエリストリングにしたいのですが、
ヘルパーに手を入れる必要がありますか?
0025nobodyさん
2009/03/12(木) 08:09:24ID:???キャッシュ使えば多少多くても大丈夫なんだろうけど、キャッシュなしで 7個は多いかな。
0027nobodyさん
2009/03/12(木) 08:52:05ID:???ありがとう。そのままクエリコピペしようと思ったけどムリだった。。。
cakephpに限ったことじゃないけど、できるだけSQLに頼らず PHP側で処理した方が
動作が軽くなるって認識でOKですかね。
0028nobodyさん
2009/03/13(金) 03:26:08ID:P2u6tjWp処理が何か知らないけど、SQLのほうがいいんじゃ。
基本debug=2で画面下にでる各SQLの実行時間を見ながら考えれば?
0029nobodyさん
2009/03/13(金) 13:25:07ID:???ありがと。SQLの時間が見れたんだね。気づかなかった。
bindModelやったらだいぶ処理時間が短くなった。
アソシエーションは大事だね。
0030nobodyさん
2009/03/14(土) 17:17:20ID:Spxmyd/mここを参考にCake1.2で空メール処理を作ってたのですが、
Shellのクラス内で$uses = (モデル名)をやると
Error: Missing Database Connection. Try 'cake bake'
と表示され、データベースに接続することができません。
そもそもバッチファイルではデータベース接続設定が
独自に要るとか何か原因になりそうなことはないでしょうか?
0032nobodyさん
2009/03/16(月) 05:17:54ID:???0034nobodyさん
2009/03/16(月) 08:31:43ID:???うまくいかないもんで聞いてみますた
0035nobodyさん
2009/03/16(月) 09:06:11ID:???0036nobodyさん
2009/03/16(月) 10:08:00ID:???登録時もAuthが自動でやってくれる。
$this->data['User']['password']に入ってれば。
0037nobodyさん
2009/03/16(月) 10:13:29ID:???0038nobodyさん
2009/03/16(月) 15:57:02ID:???0039nobodyさん
2009/03/16(月) 16:17:55ID:???バリデーションのとき面倒なのよね。
0040nobodyさん
2009/03/16(月) 17:24:43ID:???しょうがないなぁ・・。
俺はここ最後まで呼んだらすごい楽になったよ。
ttp://cakephp.jp/modules/newbb/viewtopic.php?topic_id=706&forum=14&post_id=3741#forumpost3741
0041nobodyさん
2009/03/16(月) 17:59:57ID:???ここの第3正規形、注文明細の表を見てもらいたい。
商品:姫トランスと満月を探してサウンドトラック
を注文した顧客のデータを取得したい場合
cakeならどうやって取得するんですか?
アソシエーションを定義しててもうまく取得できないのですが
何かいい方法があるのでしょうか。
mysqlなので積集合が使えないしサブクエリ出来れば使いたくないです。
0043nobodyさん
2009/03/17(火) 06:49:48ID:SCdB4QMUサンプルとかいっぱいあげてるサイトないですか?
0045nobodyさん
2009/03/17(火) 10:47:08ID:???0046nobodyさん
2009/03/17(火) 13:19:25ID:???>>45 に同感だが、
やるとすればrouterの$namedのパラメーターで設定じゃないかな。
やったことないから実際はわからんけど。
004744
2009/03/17(火) 13:47:50ID:???>>46
Cakeで作られたサイトをいくつか見たのですが、
ページング処理のあるページのURLにコロンなどが含まれていなかったので、
みなさん、なにか細工されているのかと思いまして・・・
routerでnamedパラメータの区切り文字「:」を変えることはできるのですが、
それだと、
page=1/order=created
のようになるだけなので・・・
あまり拘っても意味ないのかな。
0048nobodyさん
2009/03/17(火) 13:56:59ID:???掲示板のユーザー名も変更される場合、
掲示板テーブルにはユーザIDと本文を記録して
ひとつのレスごとにIDで検索かけて名前を取ってくる
って方法でいいんでしょうか?
0050nobodyさん
2009/03/17(火) 15:25:42ID:???検索エンジンのクローラーを別とすると、URLを見ているのは、HTML分かる人だけだわな。
とすると、クエリストリングだろうが、見慣れないcake式だろうが、そういう人が見ればどれでも一緒ということになる。
だからあまり気にすることないかと。
それよりは、面倒なところをcakeに任せた方がつくるのもメンテも楽だと思う。
005141
2009/03/17(火) 16:45:45ID:???まさに求めていたものでした。ありがとうございます。
ただ 'conditions'=>array(
conditionsに商品名=姫トランス&&商品名=満月を(ry
とした場合うまくいきませんでした。 )
0052nobodyさん
2009/03/17(火) 17:40:40ID:???'conditions' =>array('AND'=>array(.......))
とかで出てこないすか?マニュアルのモデルの所読んでみて。
0053nobodyさん
2009/03/17(火) 23:12:06ID:???選択肢を変化させたり、hiddenの値を変化させたりすると、
Securityコンポーネントに引っかかっちゃうんですけど、
なにか対処法はありませんかねぇ・・・。
0054nobodyさん
2009/03/18(水) 03:24:16ID:???0055nobodyさん
2009/03/18(水) 04:41:39ID:O+T5YpCdsessionにConditions入れて、beforeFilterとかで、controllerとaction
みて、sessionを破棄とかしてた時期もあった。
0056nobodyさん
2009/03/18(水) 11:04:58ID:???購入者名 商品名
________
購入者A 商品A
購入者A 商品B
購入者A 商品C
購入者B 商品A
購入者C 商品A
購入者C 商品B
というようなテーブルから商品AとBを買った購入者だけ取るのって難しくないですか?
AもしくはBなら簡単に出せるのですがandとなると
商品名がAかつBという行が存在出来ないので取れないんですよね。
005753
2009/03/18(水) 12:10:57ID:???ページネーションとかは問題ないですね。
フォームを出力したあとにjavascriptなどで変更してしまうと、
フォームヘルパーが出力したトークンと一致しなくなるので、
トークンチェックに引っかかってしまうわけです。
原因はわかるんですが、対処法が・・・
0058nobodyさん
2009/03/18(水) 21:41:22ID:???作りたいのですが、
cakeで実行するのに、どのような方法が便利か、
あれば教えてもらえませんか?
quickformでやろうとしたのですが、
DBから検索して配列に突っ込んで、と
あまりスマートにできません。
0059nobodyさん
2009/03/19(木) 03:39:36ID:L7hopyy3量が少ないなら、データ全部JSONで吐いて処理するけど、
多いなら普通選択されたキーをAJAXで渡して、JSONでとって、次のセレクトの中身入れ替える。
jqueryならかなり簡単。
0060nobodyさん
2009/03/19(木) 08:55:11ID:???0062nobodyさん
2009/03/19(木) 17:59:32ID:???0065nobodyさん
2009/03/20(金) 07:03:07ID:???0066nobodyさん
2009/03/20(金) 07:13:57ID:???0067nobodyさん
2009/03/20(金) 08:24:36ID:???JQueryヘルパーあるよ
07/09/38 JQuery Ajax Helper for CakePHP
http://www.tuliofaria.net/jax-jquery-ajax-helper-for-cakephp/
07/03/05 CakePHP jQuery Helper
http://www.consulenza-web.com/cakephp-jquery-helper.dc-28.html
0068nobodyさん
2009/03/20(金) 09:17:36ID:???0069nobodyさん
2009/03/20(金) 09:50:18ID:???「標準」って良いかなあ???
CakePHP1.2から「Emailヘルパー」が標準になったけど、安心して使えないのでひどい目に
あった。安定稼働させる為にあれこれ調べメチャ手を取られた。
結局「Qdmail使うしかない。」の結論になった。
CakePHPは、部品が簡単に追加できるから、良い部品を追加して使う方がしあわせになれる
のでは?
0070nobodyさん
2009/03/20(金) 10:26:20ID:???0071nobodyさん
2009/03/20(金) 16:28:56ID:???Email関連ツールがCakePHPの標準装備となった点はユーザとして喜ばしい事であるよね。
しかし、実際に使って見るとマルチバイト文字を使う所で制約が大きかったり、使えなか
ったりする所があり「なんだEmailコンポーネント使えねージャン。」と言う事になって
いる。しかし、本来は標準装備された事はありがたい事なので、我々マルチバイト文字文
化圏の人間が、CakePHPメンバに協力し、CakePHP1.2のEmailコンポーネントがマルチバイト
文字でも正しく動くように改良出来ればいいんだよね。
(ただし、誰がやってくれるのか?の問題があるけど)
0072nobodyさん
2009/03/20(金) 16:46:34ID:???ま、拡張は楽だけど。
0073nobodyさん
2009/03/20(金) 18:10:29ID:???たとえば、
あるUserが投稿したPostの一覧を表示するアクションがあるとすると、
そのアクションはUsersControllerとPostsControllerのどちらに実装するものなのでしょうか?
MVCをはじめて間もないので・・・
よろしければ理由と一緒に教えていただけないでしょうか?
また、参考になる書籍やページがあればそれも教えてください。
0074nobodyさん
2009/03/20(金) 18:20:40ID:???Postの一覧を表示するアクションは、PostsControllerに記述している。
理由は、DBでPostsテーブルを作り、Bakeすると、Postの一覧を表示するアクションは
PostsControllerの中に、index()アクションとして自動生成されるから。
(これがCakePHPの標準的な考えかたと理解してます。)
http://kuri6005.sakura.ne.jp/cake/wiki/index.php?Bake%A4%C7%A5%D6%A5%ED%A5%B0%A5%C1%A5%E5%A1%BC%A5%C8%A5%EA%A5%A2%A5%EB%A4%F2%BC%AB%C6%B0%BA%EE%C0%AE%A4%B7%A4%C6%A4%DF%A4%BF
007573
2009/03/20(金) 18:28:42ID:???すべてのPostの一覧ならばそうするのですが、
「あるUserが投稿したPostの一覧」の場合にどうしようかと思いまして・・・
0076nobodyさん
2009/03/20(金) 19:22:42ID:???どんなURL(controllerとactionと引数)になるかを考えてみよう
/posts/index/user_name or /posts/list/user_name
/users/posts_list
のどちらかになる
postの一覧から特定のユーザーのpostを表示するのならPostsControllerで
ログインしたユーザーが自分のpostを一覧するとかなら、後者でもよいと思う
007776
2009/03/20(金) 19:28:07ID:???/posts/mylist
でPostsControllerで実装してもよい
0078nobodyさん
2009/03/20(金) 19:29:15ID:???画像のプロテクトできる?
0082nobodyさん
2009/03/21(土) 11:34:24ID:7xjpEJ1gContactテーブルとAddressテーブルがあり、ひとつのContactは2つAddressを
もてるような設計です。ContactテーブルがAddressのキーを2つ持ってる感じです。
ContactモデルでbelongToで、Address1、Address2にそれぞれのforeign_keyで
つないでいる感じなのです。
saveAllを使ってAddress1,2もContactも全部保存しようとしているのですが、
編集時、Address1,2のUpdateはできるのですが、ContactのUpdate時に
それぞれの外部キーが空のSQLが実行され、エラーとなります。
saveAllの前に渡す配列に直接外部キーを別途取得して書き込んでも、無理です。
バグなのでしょうか?1.2の最新版なのですが。
0084nobodyさん
2009/03/21(土) 15:08:18ID:???画像のプロテクトの意味がよくわからないけど printscreenで取られないようにってこと?
それだったらどうやっても無駄だよ。
最終手段はデジカメ撮影でパクられるから。
0086nobodyさん
2009/03/21(土) 16:12:37ID:???OSの機能いじるって事だがな
そこまでやるのかって話だろ
0088nobodyさん
2009/03/22(日) 22:51:16ID:???結構知らないメソッドとかあるんだなぁ。
早く1.2正式版対応のを出してくれ!
0089nobodyさん
2009/03/24(火) 10:19:40ID:VfITkfEn皆さんはどのへんにメリット感じてこちらを選んだんですか?
0090nobodyさん
2009/03/24(火) 10:48:10ID:???0092nobodyさん
2009/03/25(水) 11:45:22ID:???安藤 祐介 (著), 岸田 健一郎 (著), 新原 雅司 (著)
http://www.amazon.co.jp/dp/4839930651/
発売日: 2009/4/8
0093nobodyさん
2009/03/25(水) 11:47:53ID:???■目次
Chapter 1WebアプリケーションフレームワークCakePHP
1-1 CakePHPについて
1-2 CakePHPのダウンロード
1-3 CakePHP 1.1と1.2の違い
1-4 基本的な仕組み
Chapter 2アプリケーションを作り込んでいく
2-1 グループウェアをつくる
2-2 予定表
2-3 ユーザ管理
2-4 関連を作る
2-5 ACLを使ったアクセス制御
2-6 見た目を調整する
Chapter 3テストコードを記述する
3-1 テスティングフレームワークを利用する
3-2 モデルのテスト
3-3 コントローラのテスト
3-4 コンポーネントのテスト
3-5 ヘルパーのテスト
Chapter 4機能を拡張する
4-1 アラートメール
4-2 携帯電話の対応
4-3 CSVでの出力
0094nobodyさん
2009/03/25(水) 14:54:45ID:???0095nobodyさん
2009/03/25(水) 17:29:44ID:???バリデーションが正常に機能していることが確認できるところまでできました。
しかしview側にエラーメッセージが表示されません。
ぐぐったら $form->error('Model.field') を使う、とありましたが、表示されません。
$form->input() のoption配列のerrorも指定していません(のでエラー出るはずですよね?)
validate()を実行するだけではエラーメッセージをビュー側で使えないのでしょうか?
0097nobodyさん
2009/03/25(水) 18:00:52ID:???はい、指定されています。
controller内でmodel::validationErrorsを出力してみると、
エラーメッセージがセットされていることも確認済みです。
CORE/cake/lib/view/helper/form.php の error()を見ると、
if ($error = $this->tagIsInvalid()) {
とあるのですが、ここが毎回falseになってるようです。
モデル、フィールド名を引数に取るメソッドらしく、
デフォルト引数がnullなので取れてない??
うーん・・・なぞだらけです
0098nobodyさん
2009/03/25(水) 18:11:42ID:???バリデーションで引っかかった場合にredirectしていたため、そこで初期化されてたようです。
ということは、ログインのメソッドをmember_controllerに実装した場合、
ログインフォームのビューはview/members/以下におかないとダメなのでしょうか?
複数ページにログインフォームを置きたいのです。。。
0100nobodyさん
2009/03/26(木) 10:37:51ID:???0101nobodyさん
2009/03/26(木) 10:54:26ID:???■ このスレッドは過去ログ倉庫に格納されています