【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/
0053nobodyさん
2008/12/21(日) 17:04:19ID:???だったらJavaでいいじゃんみたいな
0055nobodyさん
2008/12/21(日) 17:27:24ID:???開発中はデプロイしなくていいからスクリプト言語と変わらんし
scaffoldみたいなのもあるよ
殆どCakePHPと同じ
0056nobodyさん
2008/12/22(月) 17:14:23ID:???最初のページに対してPOSTデータを送っていた場合、失われるんだよね
ログインページへのリダイレクトはAuthコンポーネントが勝手にやってるから
セッションに入れたりって事も出来ない
どうすればいいと思う?
005756
2008/12/22(月) 17:27:43ID:???って事ね
0058nobodyさん
2008/12/22(月) 18:20:32ID:???「認証が出来てない状態でPOSTが出来てることがそもそもおかしい」
というのが直感。
この場合は
「POST元のページに認証をかけて、そもそもの条件が発生しないようにする」
が解。
(当然、認証外のPOSTは受け捨て)
……これじゃダメなんだろうってことは察するけどw
0059nobodyさん
2008/12/22(月) 18:24:37ID:???セッション短いとかあるタイミングで改めてログイン再確認とか
006056
2008/12/22(月) 18:35:31ID:???とりあえずその方向で一応の解決はした。
未認証の場合、フォームじゃなく「○○をする」みたいなリンクを出して
クリックするとログインフォーム、ログインすると元のページに来てフォームが表示されてる、
と言う形にした。
ただこの場合気になるのは、ビューでいちいちログイン状態を見て
リンクとフォームを切り替える必要がある事。
AuthコンポーネントがPOSTデータの再現もしてくれるのなら、
単にフォームを表示するだけで済む。
POSTする前に認証させておけ、と言うのとどちらが本来正しいのかは判断しかねるけど。
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アクセスの箇所ごとにエラー処理する必要はなかったんだ。
ありがとう。
■ このスレッドは過去ログ倉庫に格納されています