【PHP】フレームワーク CakePHP 5ホール目【v1.2】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2008/12/19(金) 15:52:19ID:ylogT+7chttp://www.cakephp.org/
APIドキュメント
http://api.cakephp.org/
cookbook(マニュアル)
http://book.cakephp.org/ja
the Bakery
http://bakery.cakephp.org/
■日本語フォーラム
http://cakephp.jp/
■過去スレ
【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/
0061nobodyさん
2008/12/22(月) 20:05:14ID:???自モデルのフィールド名は指定出来るけど相手モデルのフィールド名は指定出来ないよね。
デフォルトでidフィールドが参照される
これって変更できる?
0062nobodyさん
2008/12/22(月) 20:09:45ID:???これってログイン画面1つしか管理できないんですかね?
2種類のログイン画面を設置したいとき、なにかやり方ありますか?
投稿用と、観覧用など…
0063nobodyさん
2008/12/22(月) 20:20:39ID:???postテーブルにuser_idがあるとする
profile-user-post と言う関係
profileのフィールドでpostテーブルを絞り込み、paginatorで表示したい。
と言う場合直接SQL書く以外にどういう手段がある?
端的に言えばpaginatorでの二つ先のテーブルのバインドってこと。
コンテイナブルで出来るのかと思いきや、直接アソシエーションが張られてないとダメらしい。
つまりuserとprofileが繋がってても、postからprofileが直接繋がってないとエラーになる。
モデルにpaginate用のメソッドを書けるけど
それ使っても直接SQL書く事は避けられそうにない。
割と良くあるアソシエーションパターンだと思うんだけど。
006563
2008/12/22(月) 21:56:02ID:???にしてもスマートだとは思えない
0066nobodyさん
2008/12/22(月) 22:57:09ID:??????
foreignKeyではだめなの?
> 自モデルのフィールド名は指定出来るけど相手モデルのフィールド名は指定出来ないよね。
> デフォルトでidフィールドが参照される
これの意味するところがよくわからない。
006762
2008/12/22(月) 23:08:40ID:???あ、画面だけっていうか、ユーザのアクセス管理も2パターンにわけたいって意味でした。
ちょっと書き方足りなくてすみません。
006862
2008/12/22(月) 23:20:27ID:???トホホな気もするけど…
0069nobodyさん
2008/12/22(月) 23:41:22ID:???<a href="http://book.cakephp.org/ja/view/248/AuthComponent-%E3%81%AE%E5%A4%89%E6%95%B0">AuthComponent の変数 :: 認証 :: 組み込みのコンポーネント :: マニュアル :: 1.2 Collection :: The Cookbook</a>
ここを読むと、userModelで別テーブルを指定してやればいいように思える。
007062
2008/12/22(月) 23:56:41ID:???書き方まぎらわしくてすみません。
投稿用のユーザ管理と、観覧用のユーザ管理があって、それぞれ
別のページにアクセスできることを想定してました。
複数のモデルをauthで管理できればいいのですが、情報ないですね。
特殊なケースではないと思うのですが、みなさん各自でカスタマイズして
るんでしょうか?
007169
2008/12/23(火) 00:11:20ID:???うん、そういう意味で上のリンクを張ったんだけど。
モデルを切り替えるんではなくて、複数のモデルを一緒くたにして扱いたいってことですか?
007262
2008/12/23(火) 00:26:01ID:???はい。複数のモデルを一緒くたにして扱いたいのです。
それぞれのモデルに登録されたユーザ毎にでアクセス制限かけたくて。
思いついた方法は、cakeの中にもうひとつcakeを入れることくらいでした。
0073nobodyさん
2008/12/23(火) 01:20:40ID:???0074nobodyさん
2008/12/23(火) 01:21:10ID:???せめて自分でコンポーネント実装しろよw
007562
2008/12/23(火) 01:57:15ID:???肝はコンポーネントなんですね。実装といわれると
とても難しそうですが、調べてみます。
みなさん、ヒントをありがとうございます。
0076nobodyさん
2008/12/23(火) 02:23:37ID:???最初理解するのは難儀かもしれんけど。
007873
2008/12/23(火) 06:42:00ID:???ところで質問なんだけどモデル名とテーブル名の変換関数とかって
0079nobodyさん
2008/12/23(火) 08:28:34ID:???http://book.cakephp.org/ja/view/395/autoRedirect
やりたいことができるよ
0080nobodyさん
2008/12/23(火) 08:30:26ID:???http://book.cakephp.org/ja/view/491/Inflector
これ? とエスパー
008169
2008/12/23(火) 08:50:50ID:???認証と権限管理がごっちゃになってない?
Authコンポーネントは認証をするためのものだから、
そういう使い方をしようとすると無理が出るんだとおもう。
他の人も言っているように権限管理はACLコンポーネントを使うのがいいよ。
0082nobodyさん
2008/12/23(火) 15:24:32ID:???0083nobodyさん
2008/12/23(火) 16:03:34ID:???arrayの入れ子ばかりたくさん書いていると、なんだかLISPを書いているような
気になる。
つうか、LISPの偉大さを思い知った気がする。
リストの入れ子の表現力はすげえな。
0084nobodyさん
2008/12/23(火) 16:08:36ID:BZm1ywfgシステムごと分けちゃった方がベターだと思うんだ
0085nobodyさん
2008/12/23(火) 17:32:11ID:???echo"僕の名前 $a['name']";
こういう書き方が出来るけど
オブジェクトだと
echo"僕の名前 $a->name";
こうするとエラーが出るから
echo '僕の名前'.$a->name;
とか解体作業が必要になる
0086nobodyさん
2008/12/23(火) 17:34:50ID:???オブジェクトを扱う場合も結局は配列の変換しないと
phpには豊富にある配列関数を利用できないんじゃない
0088nobodyさん
2008/12/23(火) 17:50:33ID:???>>85
後者でもエラーでないよ? つうか、前者であれ後者であれ、
どこまで変数かを示すように、ブレースで囲む習慣をつけたほうがいいよ。
>>86
オブジェクトを配列として扱いたいんならArrayObjectとかあるやん。
foreachでプロパティ以外を扱いたいならIterator系をimplementすればいいし。
0089nobodyさん
2008/12/23(火) 23:11:18ID:???0090nobodyさん
2008/12/24(水) 03:20:53ID:???0091nobodyさん
2008/12/24(水) 04:16:31ID:???2つ3つ先のテーブルとなるとjoins使うしかないよね?
アソシエーションで読み込んだモデルのrecursive設定を見てそこからさらに見てくれればいいのに
アソシエーション探索を行うモデルを指定出来るようにして
0092nobodyさん
2008/12/24(水) 05:46:45ID:???ArrayObjectはPHP5.2からだよ。
phpはオブジェクトは扱いにくいって言ってるだろうが素人が
なんでわかんねーかな
0094nobodyさん
2008/12/24(水) 05:59:57ID:???0096nobodyさん
2008/12/24(水) 06:09:24ID:???>>foreachでプロパティ以外を扱いたいならIterator系をimplement
どうやって?コード書いてくれよ
javaじゃないんだからさ。。。
0098nobodyさん
2008/12/24(水) 06:19:47ID:???ArrayObjectみたいな不安定な関数よく使ってるよなwww
http://uruseiyatsura.way-nifty.com/blog/2007/04/php5arrayobject_51d1.html
0099nobodyさん
2008/12/24(水) 06:22:53ID:???>>オブジェクトを配列として扱いたいんならArrayObjectとかあるやん。
ArrayObjectてオブジェクトを配列として扱う関数なん?
配列をオブジェクトとして扱うんじゃなくて?
http://php.mirror.camelnetwork.com/manual/ja/class.arrayobject.php
0101nobodyさん
2008/12/24(水) 11:25:53ID:???ちょい嫉妬w
0104nobodyさん
2008/12/24(水) 14:34:03ID:???使う必要ないってかたくなに言うのもなんだかなぁって思う。
0105nobodyさん
2008/12/24(水) 17:44:15ID:???0108nobodyさん
2008/12/25(木) 12:13:56ID:???設定を教えて頂けませんでしょうか?
既存のmysql DB管理にcakeを使うつもりでいたら、上記設定のため
idのテーブルを追加してプライマリに設定することが行えませんでした。
0109nobodyさん
2008/12/25(木) 12:26:16ID:???なんかやたら「なんちゃらextends〜〜」とかって
出てくるんですけど??
0111nobodyさん
2008/12/25(木) 13:14:10ID:???http://book.cakephp.org/ja/view/24/
「できなかった」というと?
0112nobodyさん
2008/12/25(木) 13:30:27ID:???既存のプログラムが使用しているDBを、横からcakeで管理したかったので、
DBを新しく作ったり、すでに作られている2カラムのインデックスを解除したりは
できません。
idカラムを作成し、auto incrementalを設定しようとすると、
すでにprimaryが存在するために処理が失敗してしまいました。
primaryに設定されている2カラムのインデックスを解除すると、
既存のプログラムが動作しなくなってしまうのです…
0114nobodyさん
2008/12/25(木) 13:57:27ID:???ここを読むといいよ!
"複合キー" フォーラム - CakePHP Users in Japan
ttp://cakephp.jp/modules/newbb/viewtopic.php?viewmode=flat&order=ASC&topic_id=1304&forum=6&move=prev&topic_time=1216343829
0115nobodyさん
2008/12/25(木) 23:43:53ID:???cakeと複合キー処理について、理解が深まりました。
なんとかなりそうです。ありがとうございます。
0116nobodyさん
2008/12/26(金) 10:52:31ID:???0117nobodyさん
2008/12/26(金) 11:25:09ID:???もっと完全にバグ取ってからにしてほしかった・・・
でもおめでと〜!
0118nobodyさん
2008/12/26(金) 12:06:29ID:???く・・クリスマスプレゼント?
0119nobodyさん
2008/12/26(金) 12:24:27ID:???0120nobodyさん
2008/12/26(金) 12:32:56ID:???0121nobodyさん
2008/12/26(金) 12:33:32ID:???0122nobodyさん
2008/12/26(金) 15:09:01ID:???0123nobodyさん
2008/12/26(金) 15:14:48ID:???ビューで使うとかなり見通しがよくなる
0124nobodyさん
2008/12/26(金) 15:26:28ID:???private 先頭にアンダーバーを2つ置く __test
protected 先頭にアンダーバーを1つ置く _test
public 先頭にアンダーバーを置かない test
ナンジャコリャー
0126nobodyさん
2008/12/26(金) 16:23:26ID:???0127nobodyさん
2008/12/26(金) 16:33:19ID:???0129nobodyさん
2008/12/26(金) 17:06:36ID:???cakeのprotectedってどういうタイミングで使うん??
0130nobodyさん
2008/12/26(金) 17:13:03ID:???symfonyも使ったけどバリデーションルールの自動生成が無いのは確実にマイナス
0131nobodyさん
2008/12/26(金) 18:17:48ID:???0132nobodyさん
2008/12/26(金) 19:14:18ID:???0133nobodyさん
2008/12/26(金) 19:19:08ID:???過去製作したコードを見たとき、「何でこんなことしてるんだっけ?」っていうのが激減した
0134nobodyさん
2008/12/26(金) 19:50:29ID:???cakeの一番上のディレクトリに、/appと並ぶ形で作ると管理しやすいかな。
PDTとかで管理する上でも。
0135134
2008/12/26(金) 22:09:57ID:???0136nobodyさん
2008/12/26(金) 22:30:57ID:???0137nobodyさん
2008/12/26(金) 22:36:04ID:???マニュアルに書いてある。
http://book.cakephp.org/ja/view/35/
0138nobodyさん
2008/12/26(金) 22:41:30ID:???だめっぽくねcake
0139nobodyさん
2008/12/26(金) 22:55:42ID:???0141nobodyさん
2008/12/27(土) 03:36:46ID:???とかIE7でもおかしいし、firefoxだともっとやばい
なんとならんの?
0142nobodyさん
2008/12/27(土) 08:43:14ID:???Practical CakePHP Projects 400ページ 3,963円 08/12/8発行
http://www.amazon.co.jp/Practical-CakePHP-Projects/dp/143021578X/ref=tag_dpp_lp_edpp_img_in
どうよ?
(参考)半年前に発売されている姉妹書
Beginning CakePHP: From Novice to Professional 344ページ 3,963円 08/7/21発行
http://www.amazon.co.jp/Beginning-CakePHP-Novice-Professional/dp/1430209771/ref=tag_dpp_lp_edpp_img_in
0144nobodyさん
2008/12/27(土) 13:29:46ID:???0145nobodyさん
2008/12/27(土) 13:52:50ID:???0146nobodyさん
2008/12/27(土) 15:59:16ID:???値段も倍くらい違うし一緒にするのはかわいそう
0147nobodyさん
2008/12/27(土) 18:29:26ID:???http://cakeforge.org/frs/?group_id=23&release_id=433
app/config/の中に、database.php.defaultファイルが見当たらない。
探し方が悪いのか?本家が忘れ物したのかな?
みなさんのところdatabase.php.defaultファイルあります?
0149nobodyさん
2008/12/28(日) 18:51:53ID:???Model::save() で、バリデーションエラーではなく、DBシステムエラーが起こっ
た場合には、同様に戻り値は false になるんだろうか?
もしそうなら、バリデーションの場合とシステムエラーの場合とで、戻り値が
falseの時の処理を分けなければいけないと思うんだけど、どうしたらいいんだろ?
1. save()の前にvalidate()を実行して分岐する。
2. save()のあとにinvalidFields()を実行して分岐する。
みんなはどうしてる?
0151nobodyさん
2008/12/28(日) 20:41:33ID:???うわー、これ知らなかった!
なんだ、DBアクセスの箇所ごとにエラー処理する必要はなかったんだ。
ありがとう。
0152nobodyさん
2008/12/28(日) 22:11:07ID:???うちの場合ちょっと事情があって、onError()関数でを上書きできないので。
0153nobodyさん
2008/12/28(日) 22:33:37ID:???Model::save()の戻り値はやっぱり false だった。
save のあとで invalidFieldsがあるかどうかで分岐すればよさそう。
0154nobodyさん
2008/12/29(月) 03:21:56ID:???適当にDboを継承してonErrorが呼ばれてる部分を実装すればいいのでは?
やりたくないけど。
>>153
DB側がエラーになってる時点で、saveも糞もないと思う。
0157nobodyさん
2008/12/29(月) 13:36:03ID:???http://seshop.com/book/errata/
08年9月発売で、発売から4ヵ月も経っているのに、まだ正誤情報掲載してないぞ〜
俺は、Ajaxの項のp.178のリスト5.5が全然違うのがわからず、メチャ手間取ったぞ〜
CDのLIST5-5も全然違うじゃねーか。ダブルパンチだ。
早く正誤情報掲載してくれ〜
0158nobodyさん
2008/12/29(月) 18:21:03ID:???0159nobodyさん
2008/12/29(月) 20:00:17ID:???本を悪く言ってんじゃなくて、反対
「CakePHP徹底入門」良い本だから期待している。
CakePHP1.2で解説されているから非常に便利。内容も入門者にはベスト。良い例題でわかり易い説明。
まだ半分までしか読んでないけど、気付いた間違いを紹介
p.179誤
37: <?php echo $jptime->jpdatetime($product['Product']['created']); ?>
40: <?php echo $jptime->jpdatetime($product['Product']['modified']); ?>
正(CDもNG)
37: <?php echo $product['Product']['created']; ?>
40: <?php echo $product['Product']['modified']; ?>
0160nobodyさん
2008/12/29(月) 20:00:53ID:???リスト5.7
1: function index() {
リスト5.8
1: function index() {
正(CDはOK)
リスト5.7
1: function index($id = NULL) {
リスト5.8
1: function index($id = NULL) {
p.89中あたり 誤
INSERT INTO products VALUE (1, 1, '商品1', now(), now())
INSERT INTO products VALUE (2, 2, '商品2', now(), now())
INSERT INTO products VALUE (2, 2, '商品3', now(), now())
正(CDはOK)
INSERT INTO products VALUE (1, 1, '商品1', now(), now());
INSERT INTO products VALUE (2, 2, '商品2', now(), now());
INSERT INTO products VALUE (3, 3, '商品3', now(), now());
上記3つはプログラムが動かないけど、以下2つはどうでもいい事
p.133下の方 誤
shopping/controllers/category_controller.php
正
shopping/controllers/categories_controller.php
p.116下の方 誤
と質問がきますので、「y」を入力して終了します。
正
と質問がきますので、「n」を入力して終了します。
0161nobodyさん
2008/12/30(火) 19:33:21ID:uva7pRTj所々にいらぬお節介がついて回るよね、cakeは
核になるMVCを無意味に密に結合するような作りにしたりして
素晴らしいお手本があるにもかかわらず何故センスのない変な拡張をいれるんだorz
■ このスレッドは過去ログ倉庫に格納されています