【PHP】フレームワーク CakePHP 5ホール目【v1.2】
レス数が950を超えています。1000を超えると書き込みができなくなります。
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/
0002nobodyさん
2008/12/19(金) 15:53:15ID:???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/
0003nobodyさん
2008/12/19(金) 15:53:49ID:???チートシート
http://www.cakephp.org/files/cakesheet.pdf
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
■関連書籍
CakePHP ポケットリファレンス
http://www.amazon.co.jp/dp/4774135038
CakePHP徹底入門
http://www.amazon.co.jp/dp/479811717X
CakePHPガイドブック
http://www.amazon.co.jp/dp/4839924317
Fast CakePHP
http://www.amazon.co.jp/dp/4774133418
0004nobodyさん
2008/12/19(金) 15:56:22ID:???最近のサイトでお勧めのものがあればどうぞ
0005nobodyさん
2008/12/19(金) 17:52:20ID:???0006nobodyさん
2008/12/19(金) 21:56:40ID:???0007nobodyさん
2008/12/20(土) 01:42:56ID:???月5,000円のレンタルサーバーが必要です。
一方、cakephpなら、月500円のレンタルサーバーで
十分なスピードで動きます。
0008nobodyさん
2008/12/20(土) 01:57:02ID:???0012nobodyさん
2008/12/20(土) 17:36:31ID:???できるプログラマーって何を聞いても親切に教えてくれるよな。
できないプログラマーってひたすら人をバカにしたがるよな。
なんなんだろうなこの違い。やっぱり謙虚さが大事なのかな。
0013nobodyさん
2008/12/20(土) 17:49:45ID:???0014nobodyさん
2008/12/20(土) 17:53:38ID:???> できるプログラマーって何を聞いても親切に教えてくれるよな。
「できるプログラマー」って何なのか詳しく教えてほしい。
0015nobodyさん
2008/12/20(土) 18:25:16ID:???できるとか、できないとかじゃなくて性格の問題だとおもいます。
0017nobodyさん
2008/12/20(土) 18:29:08ID:???って事でしょ要するに
自分だけできればいいって人は仕事できるってあんまり言われないからね
0018nobodyさん
2008/12/20(土) 18:31:46ID:???> 自分だけできればいいって人は仕事できるってあんまり言われないからね
その対象人物が周りから「できる」と言われればいいということ?
それは、「仕事の効率がいい」ということにはならないね。
0019nobodyさん
2008/12/20(土) 18:49:16ID:???0021nobodyさん
2008/12/20(土) 18:57:26ID:???言葉の定義をしないままに議論なんか出来ないので、
「使えない人間」って何なのか詳しく教えてくれるとうれしい。
0022nobodyさん
2008/12/20(土) 19:29:30ID:???0024nobodyさん
2008/12/20(土) 19:47:08ID:???一生リーダーになれないぞ
0025nobodyさん
2008/12/20(土) 19:49:29ID:???> それが解らないって事はお前は仕事仲間を評価したりできてないってことだよな
なんでそういう飛躍をしちゃうの?
0026nobodyさん
2008/12/20(土) 19:54:06ID:???君は同僚を評価するときはどうやってしてるの?
0027nobodyさん
2008/12/20(土) 20:00:09ID:???> ってことは評価できるって言うことだよね?
どこをどういう風に解釈すると、そういう問いを出すことが出来るの?
0029nobodyさん
2008/12/20(土) 20:03:12ID:???今までの流れとは全く関係ないということなので、前提をつくらないと。
> 君は同僚を評価するときはどうやってしてるの?
同僚の何を評価すればいいの?
0030nobodyさん
2008/12/20(土) 20:52:18ID:???0031nobodyさん
2008/12/20(土) 21:39:25ID:???まだ日本語使うにはきつい??
0032nobodyさん
2008/12/20(土) 22:12:10ID:???qdmail
0033nobodyさん
2008/12/20(土) 22:21:13ID:???ざっくりでいいので教えてもらえるとうれしい。
0035nobodyさん
2008/12/20(土) 22:44:20ID:???X-PHP-Qdmailで捜してって消せばいいんじゃないの?
MITライセンスなんだし
0037nobodyさん
2008/12/20(土) 22:48:55ID:???ソース開いて$this->header['X-'.$this->xmailer]の部分消せみたいな具体的な指示?
0038nobodyさん
2008/12/20(土) 22:52:22ID:???0040nobodyさん
2008/12/20(土) 22:56:03ID:???> スルーしろよ。
それスルーしたことになってるのか?
0041nobodyさん
2008/12/20(土) 22:57:35ID:???0042nobodyさん
2008/12/20(土) 23:07:09ID:???スルーしないけど
0043nobodyさん
2008/12/20(土) 23:08:42ID:???0044nobodyさん
2008/12/20(土) 23:16:12ID:???0045nobodyさん
2008/12/20(土) 23:22:45ID:???PHPしか使えない人たちの中で仕事ができる人なんでしょ。
0046nobodyさん
2008/12/20(土) 23:26:07ID:???0047nobodyさん
2008/12/20(土) 23:35:11ID:???Rubyもできない仕事もできない、そして仕事ができるという定義も解らない。
0048nobodyさん
2008/12/21(日) 00:17:25ID:???同意。
0049nobodyさん
2008/12/21(日) 11:26:07ID:???いい加減にしろよ(笑)
Rubyが思ったほどシェアが増えなくて
あせっているのはわかるけど、
こんなところでPHPをたたいても
Rubyのシェアは増えないぞ。
これ、2年前にも言った。
0050nobodyさん
2008/12/21(日) 12:45:08ID:???自社サービスはPHPとJavaだよな
0051nobodyさん
2008/12/21(日) 15:19:52ID:???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アクセスの箇所ごとにエラー処理する必要はなかったんだ。
ありがとう。
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
0162nobodyさん
2008/12/30(火) 23:28:49ID:???0163nobodyさん
2009/01/01(木) 15:27:00ID:???0164nobodyさん
2009/01/01(木) 16:48:24ID:???目次の「3 CakePHPによる開発」をクリックするとレイアウト崩れるけど?
ttp://book.cakephp.org/ja/
0165nobodyさん
2009/01/01(木) 17:23:53ID:???0166nobodyさん
2009/01/01(木) 21:00:37ID:???以前のマニュアルページがそのままインポートされてる感じだね
0167nobodyさん
2009/01/02(金) 07:50:16ID:???末尾に 1 っていうゴミが付いてくるんだけど、なんだろう?
0168nobodyさん
2009/01/02(金) 07:57:24ID:???echo $session->flash();
って書いて返値のtrueを出力してた
0169nobodyさん
2009/01/02(金) 22:49:27ID:???1.2マニュアルのレイアウト崩れ直ったみたい。
ttp://book.cakephp.org/ja/
0171nobodyさん
2009/01/03(土) 02:12:26ID:???再現率は100%じゃないのかねぇ
0172nobodyさん
2009/01/03(土) 02:28:49ID:???今見た限りでは直ってた
どこのページで問題出てる?
0173nobodyさん
2009/01/03(土) 03:49:50ID:???0174nobodyさん
2009/01/03(土) 18:30:22ID:???文字サイズが大きいのですが、文字サイズを小さくするにはどうすれば
よいでしょうか?よろしくお願いします。
echo $form->input('content', array('type'=>"text", 'label'=>""));
0176nobodyさん
2009/01/04(日) 12:47:21ID:???ヒントありがとうございます。
正解みたいですね。CSSは耳にした事はありますが、難しいので避けてました。
CSS レイアウト スタイルシートがキーワードのようですね。
http://www.bnote.net/php/cakephp/cakephp08.shtml
http://www.ideaxidea.com/archives/2007/06/cakephp_014.html
勉強してチャレンジしてみます。
0177nobodyさん
2009/01/04(日) 14:23:59ID:???0178nobodyさん
2009/01/04(日) 17:01:24ID:???今から先取りして覚えておいて損はない。
0179nobodyさん
2009/01/04(日) 17:31:20ID:???0180nobodyさん
2009/01/04(日) 18:16:16ID:???0181nobodyさん
2009/01/04(日) 18:47:13ID:u5+bOtGZテーブル使った方がはるかに効率的な場合に狙ってやるのは○
テーブルレイアウトしかできないのは論外
0182nobodyさん
2009/01/04(日) 18:48:37ID:???崩れまくり
0184nobodyさん
2009/01/05(月) 02:25:07ID:???0186nobodyさん
2009/01/05(月) 02:48:56ID:???0187nobodyさん
2009/01/05(月) 03:19:39ID:???0189nobodyさん
2009/01/05(月) 20:31:10ID:qd8O6pD60191nobodyさん
2009/01/05(月) 23:41:50ID:???0192nobodyさん
2009/01/06(火) 09:15:09ID:???0193nobodyさん
2009/01/06(火) 09:26:24ID:???まだ壊れてるぞー
0194nobodyさん
2009/01/06(火) 09:36:40ID:UaXiuRrZこの辺りも
1ページ表示で崩れる
0196nobodyさん
2009/01/06(火) 15:48:45ID:???マスターしてから1年後だと思う。1年経つとCakePHPに特化した使いまわし出来るロジックがかなり増える
なので新しいフレームワークが出て、すぐ移行するのは
今まで蓄積したロジックを捨てるに等しいので
CakePHPを8割、新しいフレームワーク2割という感じでフレームワークを使っていこうと思っている
0197nobodyさん
2009/01/06(火) 15:52:53ID:???このバランスが大切だと思う、完全シフトはただのバカと思うし
CakePHP100%たより過ぎも、将来がない
0198nobodyさん
2009/01/06(火) 15:55:30ID:???CakePHPを超えるものは見当たらないから
実質、CakePHP100%でやってる
0199nobodyさん
2009/01/06(火) 16:08:25ID:???せいぜい三日程度のコストしかかからないと思うんだが
独自コンポーネントを移すにしても
0200nobodyさん
2009/01/06(火) 16:30:45ID:???0201nobodyさん
2009/01/06(火) 17:03:32ID:???出来る人との違いを痛感します
0205nobodyさん
2009/01/07(水) 02:09:30ID:???0206nobodyさん
2009/01/07(水) 10:48:13ID:???ttp://www.widgetpress.com
Macユーザー自体少ないのかな。
自分はこれからさわってみます。
0208nobodyさん
2009/01/07(水) 16:47:56ID:???これってトランザクション使わないとまずい?
0209nobodyさん
2009/01/07(水) 16:55:48ID:???詳しいことは他の人に譲るが
記憶が定かなら、確か件数取得(select)して、書き込む(update)だけだったと思うから、トランザクション関係ないはず。
0211nobodyさん
2009/01/07(水) 17:04:53ID:???関連モデルのsaveについて言ってる
公式マニュアルのくせに何の注意書きも無いから内部でうまくやってるのかなと
0212nobodyさん
2009/01/08(木) 09:16:02ID:???0213nobodyさん
2009/01/08(木) 11:52:33ID:???viewで
echo $form->error('Modelname.fieldname', '出力されるエラー表示');
だとうまくいくのに
echo $form->error('Modelname.fieldname');
でmodelの$validateで代入した'message'が表示されません。
これでうまくいくようなことがあちこちに書いてあるのに。
どうやったら'message'を出力できるんでしょうか。
0214nobodyさん
2009/01/08(木) 14:16:03ID:???modelの文字コードが原因でした。
0215nobodyさん
2009/01/09(金) 08:36:44ID:I5IAXkbtモデルクラスのプロパティは、コントローラーをまたがって保持されます?
なにがやりたいかというと、
モデル内でファイルを読み込んで、そのデータをプロパティに保持
(DBを使わないモデル)
他のコントローラーからそのモデルクラスのプロパティを参照したい
personモデル
var $sex;
function loadfile() { ファイルを読み込んでプロパティをセット }
function getSex() { 性別を返す }
peopleコントローラー
getSex()でデータ取得
profileコントローラー
getSex()でデータ取得
各コントローラーで、必ず毎回ファイルを読み込まないとだめでしょか?
0216nobodyさん
2009/01/09(金) 08:42:51ID:???if(isSet(ClassName::sex)){
//ファイル読み込み
}
一応いっとくとプロセスまたがっては無理だよ
0217nobodyさん
2009/01/09(金) 08:43:21ID:???0218nobodyさん
2009/01/09(金) 08:51:49ID:???できなくはないんですね
基本的には、CakePHPの流儀(というかPHPフレームワーク?)としては、
コントローラーごとに毎回データを読む(DB使う場合も)
という感じでしょうか
あとはキャッシュ機能を使うみたいな
0219nobodyさん
2009/01/09(金) 08:54:52ID:???ちょっと心配なんですが、キャッシュ機能使えってことでしょうか
セッションに保存するのはなんか違う気がしますし
0220nobodyさん
2009/01/09(金) 09:02:28ID:???というか、そもそも、people と profile が関連づけられていれば、profileコントローラーは不要だと思うが
(よく読み込まずに答えたから、見当違いだったらすまん)
0221nobodyさん
2009/01/09(金) 09:02:36ID:???0222nobodyさん
2009/01/09(金) 09:03:29ID:???DBから読むかファイルシステムから読むかの違いでしょ
0223nobodyさん
2009/01/09(金) 09:05:38ID:???0224nobodyさん
2009/01/09(金) 10:12:30ID:???Userモデル(Personモデル)
Usersコントローラー
があって、
/users/index で、Usersリストを表示する
/users/view で、Userプロフィールを表示する
みたいな
質問を読むと、根本的な問題のような気がする
(Peopleモデルというのがイメージできないし、Personsコントローラーがあれば、Profilesコントローラーは要らなそうな気がする)
0225215
2009/01/09(金) 11:09:25ID:???例は適当です…
具体的には、ファイルからデータを読み込ませ、
そのデータを元に、各コントローラーでフォームを自動構築しようとしています
(入力内容が毎回可変なため、このようにしています)
ファイルには各コントローラーにまたがる入力項目のデータが含まれていて、
各コントローラーでは、そのデータを読み込んでフォームを構築します
この場合、コントローラーごとにファイルに何回もアクセスする
ということでいいんでしょうか?
(今のところ、データベースは一切使いません。)
0226215
2009/01/09(金) 11:16:27ID:???商品名:text
価格1:select
価格2:select
(価格の数は可変)
ファイル(price)
1000
2000
3000
(可変)
モデル
product
price
コントローラー
productController
priceController
ビュー
product(商品の選択画面)
ファイルを読み込んで商品名を選択する画面
price(価格の入力画面)
価格のデータ数分だけフォームを入力
コントローラーを分けているのは、もう少し複雑で、他のデータなども混じるためです
うまく説明できない・・・・
0227215
2009/01/09(金) 11:23:38ID:???productにまとめると肥大化&実際に価格データ専用のアクションも必要になるため、
コントローラーをわけてます。
うまく説明できないのですが、
とりあえず、コントローラーまたぐならファイルに毎回アクセスしろってことですかね
0228nobodyさん
2009/01/09(金) 11:37:58ID:???0229nobodyさん
2009/01/09(金) 11:38:29ID:???0230215
2009/01/09(金) 11:54:38ID:???コントローラーは共通じゃないです
モデルは一部共通ですね
となるとビヘイビア?
どのみち、普通にやるとなれば毎回ファイルアクセスは発生ですね
後で外部クラス化を考えることにします…
0231nobodyさん
2009/01/09(金) 12:05:39ID:???コンポーネントかエレメントで出来るだろ
0232nobodyさん
2009/01/09(金) 12:12:39ID:???そうだとすると
「コントローラーごとにファイルにアクセスで良いか」というのは、Yesということになるね
(ただし、正確には、ControllerではなくModelだけど)
ProductとPriceがHasManyの関係にあるのなら、なるべくDBを使うべきでしょう。
(もしかしたらHABTMかもね)
0233nobodyさん
2009/01/09(金) 12:15:46ID:???フォーム生成処理を共通化したいのならエレメントかコンポーネントだろ
0234nobodyさん
2009/01/09(金) 12:19:41ID:???0236nobodyさん
2009/01/09(金) 12:28:58ID:???たぶん、>>215が気にしているのは、「毎回DBやファイルを読み込むのが気持ち悪い」ということかなと。
だとすると、viewの問題ということなんだけど、そもそもModelやControllerの設計がまずいとキャッシュも使えないからね。
0237nobodyさん
2009/01/09(金) 12:34:01ID:???DBに記録する以外は。
Cakeのキャッシュなんて所詮はファイルシステムから読み出してるに過ぎないから
それ以上の高速化は無理。
そもそもやろうとしてる事がエレメントを使って書くべきものに思えるが。
0238215
2009/01/09(金) 12:41:11ID:???はい、だいたいそんな感じです
いずれ、ユーザー固有のデータはDBに入れるつもりですが、
今回の質問のデータはシステム全体で共通のデータです
ただ、それがユーザーの入力によって変わる(切り替える)ことがあると。
>>233
その共通化の元となるデータをファイルで読み込むんです…
ユーザーの入力に応じて変化します。
そういう可変データがたくさんあるんで…
ざっとマニュアルを見た感じでは、DataSource?を自分で作ればよいのかな、とも。
とりあえずは、モデルで処理して、後々外部クラスとかにまとめてみることにします
ありがとうございました
0239nobodyさん
2009/01/09(金) 12:43:19ID:???ビューキャッシュ<<<<エレメントキャッシュ<何もしない
ビュー自体をキャッシュできるならするべきでしょう
0240nobodyさん
2009/01/09(金) 12:44:03ID:???ユーザの入力はGETなりPOSTなりで来るんでしょ?
エレメント内でそれを見て動作切り替えたらいけないの?
0241215
2009/01/09(金) 12:45:58ID:???フォームの個数もパターンも無数にあるんですが、エレメントでできるんでしょうか?
いや、実際の出力はエレメントでやるんですが、
"どのエレメントをどの順番で何個出力するか"のデータが、今回のファイルに保存されているんで…
そのデータはモデルで読むか、外部クラス化するかですよね。
で、そのデータをコントローラー間で使い回したかったんです。
イメージとしては、XMLからのフォームの自動生成、
しかも、それがユーザーの入力に応じて変わると、いう感じで、
その元となるXMLを保持しておけるのかな、と。
(データファイルはいずれXML化するつもりです)
外部クラス化とかするしかないですよね。
モデルに書くと毎回読みにいくしかなさそうということで。
0242251
2009/01/09(金) 12:48:25ID:???POSTで来るんですが、入力段階(画面)が数回あって、
ユーザーの入力値と順序によって、生成するフォームのパターンが変わるんです…
0243nobodyさん
2009/01/09(金) 12:49:04ID:???そうでないならエレメントにコードを置かずファイルから読み込もうとしてる理由が分からん。
0244251
2009/01/09(金) 12:50:10ID:???しかも、画面は自由に行き来可能で、ある画面で入力値を変えると、
他の画面のフォームも再構築する必要があると…
とりあえず、一回全部組んでから効率化は考えることにします…
0245nobodyさん
2009/01/09(金) 13:49:09ID:???0246nobodyさん
2009/01/09(金) 14:01:28ID:I5IAXkbtcreate()のパラメータ modelって、モデル名じゃなくてコントローラー名だよね?
model名入れててエラーになった orz
0247nobodyさん
2009/01/09(金) 15:22:27ID:I5IAXkbtコントローラでいじるのに違和感があるんだけど
モデルじゃセッション使えないよね?
0248nobodyさん
2009/01/09(金) 15:23:23ID:???すまそ
0249251
2009/01/09(金) 18:31:13ID:I5IAXkbt例えば、商品のデータを編集する処理を作る場合、
商品名を編集する画面と価格を編集する画面を分けたいと思ってます
この場合、コントローラーもわけたほうがいいんでしょうか?
(もちろんモデルは一つ(Product)になるかと思いますが)
というのも、コントローラーを一つにすると、
products/name/change
products/prices/delete
products/prices/change
products/prices/delete
のようになり、URLのアクション部分が実際の処理とは違う形になってしまい、
アクション側でもパラメータでいちいち処理を分岐させる必要があります
そこでコントローラーだけを二つにわけて、
products/change
products/delete
prices/change
prices/delete
のようにしようかと思うんですが、よくないですかね?
どうでもいい質問かと思うんですが、できればCakeの流儀に合わせたいので…
0250nobodyさん
2009/01/09(金) 18:39:40ID:???change_priceと言う形にするか
change/priceじゃないの
例えばその商品名と価格の編集フォームがほとんど同じなら
change/priceの形にした方が良いよね
0251nobodyさん
2009/01/09(金) 19:07:30ID:???action名は add / edit / delete にしましょう
で、>>250のように /products/edit/price とするか
自分だったら /products/edit にして、渡されたデータ($this->data)を見て、内部で分岐するかな
(分岐の必要があれば、だけど)
0252nobodyさん
2009/01/09(金) 19:10:02ID:???0253215
2009/01/09(金) 19:33:24ID:???>>250
>>251
あー、やっぱりコントローラーは一つにまとめたほうがいいですか
対象は同じですもんね
changeにするなら、ルーティングで変えたほうがよかったですね
型どおりのはいくつか作ってみたんですが、
まだ応用までいきついてません
参考になりました
ありがとうございます
0254nobodyさん
2009/01/09(金) 23:29:16ID:???0255nobodyさん
2009/01/10(土) 16:34:04ID:tnQWYP/Troutes.phpでルーティングを変えるとエラーになるんですが、バグですか?
/item
を
'action' => 'cahnnel', 'action' => 'index'
とかに割り振ると、コントローラー?を誤認するのか404エラーになっちゃいます
0256nobodyさん
2009/01/10(土) 16:34:56ID:???Securityコンポーネント使うと、うまくルーティングできないよ…
0258nobodyさん
2009/01/10(土) 17:36:37ID:???やっぱりですか…
できればルーティングしてるURLに合わせたいんだけど、
どうすればいいのかさっぱり orz
0260nobodyさん
2009/01/10(土) 17:48:22ID:???自前で書くしかないのか
意味ねー
0261nobodyさん
2009/01/10(土) 17:59:27ID:???0262nobodyさん
2009/01/10(土) 18:00:17ID:???節々にバグがあって、
他の機能と競合してどっちか使えないとか多い
0263nobodyさん
2009/01/10(土) 18:07:23ID:???これでなぜかTEXTAREAになるのは俺だけ?
0264nobodyさん
2009/01/10(土) 18:46:39ID:???$form->input('name',array('type'=>'submit'));
1.2finalでオレもTEXTAREAになった。そんなもんだろう。
聞いちゃいないだろうけど普通のsubmitの書き方
$form->end('了解');
か
$form->submit('了解');
0265nobodyさん
2009/01/10(土) 19:00:31ID:???くれるんだけど、この頭の空白をなしにするのは/webroot/css/cake.generic.cssをどう
変更すればいいの?
input[type=submit] {
display: inline;
font-size: 110%;
padding: 2px 5px;
width: auto;
vertical-align: bottom;
}
0270nobodyさん
2009/01/10(土) 19:36:40ID:???allowedControllerプロパティ?
それなら既にやってる orz
なんかうまい方法ないかな
ちょっとソース見てみたけどさっぱりだ orz
0271nobodyさん
2009/01/10(土) 19:38:00ID:???'Model2'=>array('conditions'=>array( ... )),
));
みたいにやると、Model2のコンディションに合致したModel1だけが返るんじゃなく
合致してないものも返ってくるよね?
合致した物だけにするにはどうすればいい?
0272nobodyさん
2009/01/10(土) 20:26:03ID:tnQWYP/Tdvd
cd
mp3
っていうモデルがあったとしたら、コントローラーはそれぞれ作る?
それとも
audio
みたいに一つにまとめて、そっから各モデルを呼びだす?
処理的に似たようなのが多いんだけど、
それでも分けるのが普通?
0273nobodyさん
2009/01/10(土) 20:27:45ID:???当然audioでまとめる
0274nobodyさん
2009/01/10(土) 20:30:14ID:???他のFWもこんなもんなのかな
0277nobodyさん
2009/01/10(土) 20:58:25ID:???> それはCSSじゃなくてHelperのしわざだろ
お〜い。ウソだよ。cssだよ。
form div.submit {
border: 0;
clear: both;
margin-top: 10px;
/* margin-left: 140px; */
}
これでsubmittボタンの頭の空白はなくなるよ。
0278nobodyさん
2009/01/10(土) 21:22:36ID:tnQWYP/Tformヘルパーの吐く action属性もおかしくなるな
0279nobodyさん
2009/01/10(土) 21:26:59ID:???Postコントローラーなのに
<?php echo $form->create('Post', array('action' => 'edit')); ?>
としても、 action="posts/edit" になりやがる
なんでこんなバグだらけなんだよ…
0280nobodyさん
2009/01/10(土) 21:30:15ID:???汎用化すべきところも各所で独自実装してるからね
ライブラリごとの整合性や競合といった問題が出てくる
0281nobodyさん
2009/01/10(土) 21:33:55ID:???意味ねーよ…
1.2finalでこれでしょ?
もうちょいなんとかしてほしいなぁ
0282nobodyさん
2009/01/10(土) 21:38:22ID:???Securityコンポーネントもそうだけど
汎用的な機能すらバグ持ちかつ仕様がおかしかったり機能不足だったり
他のFWはどうなんだろうなあ
0283nobodyさん
2009/01/10(土) 21:44:53ID:???ぱっと見はたしかに早いんだけど、使えるレベルに引き上げるのに相当苦労する気が
とりあえずformヘルパー使うのやめて直書きする
formヘルパー拡張してトークン出力メソッドだけ使うわ orz
0284nobodyさん
2009/01/10(土) 21:47:38ID:???んで、ライブラリ類継承しようとしても、コアライブラリへのパス定数ないのね
なんかいまいち甘いよね
ぱっとみ手軽っぽくは見えるんだけど
0285nobodyさん
2009/01/10(土) 22:00:30ID:???ビューで $myform 使えないぞw
Helperクラス継承せんといけんのか?
拡張性低すぎだろ…
0286nobodyさん
2009/01/10(土) 22:13:06ID:???$myformで参照できたわ
MyFormだと$my_formでも$myformでも参照できない
ヘルパーには大文字一つしか使えないんか?
なんでこんなとこで苦労しなきゃいけないんだよw
0287nobodyさん
2009/01/10(土) 22:14:07ID:???コントローラのほうじゃないの
0288nobodyさん
2009/01/10(土) 22:14:53ID:???0289nobodyさん
2009/01/10(土) 22:15:14ID:???どういう命名規則だよ…
キャメルケースは _ だろ…ファイル名もそうだし
なんか一気にいやになってきたなー
かといって他にあんまりいいのないんだよな
0290nobodyさん
2009/01/10(土) 22:16:55ID:???ちゃんとやってるよ
my_helper.php:
MyFormHelper extends FormHelper
コントローラー:
$helpers = array('MyForm');
んで、ビューでは$myFormで参照したらいけた
ヘルパーのクラス名だけ命名規則がおかしいだろ…
0291nobodyさん
2009/01/10(土) 22:25:05ID:???ルーティングしてるとSecurityコンポーネント使えないな
ほんとにFWなのか疑問に思ってきたぞ…
0292nobodyさん
2009/01/10(土) 22:58:06ID:???<?php echo $form->create('Post', array('url' => '/post/edit')); ?>
でurl使えばいけそうな感じなんだが、
Securityコンポーネントをあきらめてはずしたら、セッションが使えなくなった
Sessionコンポーネントもヘルパーも使ってるのに
だんだん頭にきてきた
0293nobodyさん
2009/01/10(土) 23:05:43ID:???formヘルパーの吐くaction属性の件は
<?php echo $form->create('Post', array('url' => '/post/edit')); ?>
でうまくいった
もっともSecurityコンポーネント使えない問題は残るが…
もうちょいバグ少ないFWないのかね…
0294nobodyさん
2009/01/10(土) 23:14:50ID:???0295nobodyさん
2009/01/10(土) 23:34:57ID:???使い続けるかわからんので、常連さん、お願いしますねーw
0296nobodyさん
2009/01/10(土) 23:42:11ID:???Securityコンポーネントとルーティングつかってるときに
404エラーになる原因の目星ある?
コントローラー名かHTTP_REQUEST関係あたりかな
とは思ってるんだけど、目星つかないとなぁ
0297nobodyさん
2009/01/11(日) 00:25:09ID:???ビューで共通して使うような関数はヘルパ
に実装すると思いますが、
コントローラでもビューでも使うような関数はどこに実装するのが
cakephp のやり方ですか?
0298nobodyさん
2009/01/11(日) 01:06:51ID:???$form->input('honbun', array('type'=>'textarea', 'cols'=>'10', 'rows'=>'5');
行数(rows)は指定どおり変化してくれます。
cake.generic.cssのどこかを修正すれば良さそうな所まで調べましたが、具体的に
どこをどう修正すれば良いかわかりません。よろしくお願いします。
0300nobodyさん
2009/01/11(日) 03:35:55ID:???途端におかしな動作しだすな、このフレームワーク…
0301nobodyさん
2009/01/11(日) 03:59:04ID:???0302nobodyさん
2009/01/11(日) 08:53:45ID:???というか、今までのバグは本家に報告してないの?
0303nobodyさん
2009/01/11(日) 09:24:13ID:???0304nobodyさん
2009/01/11(日) 12:04:42ID:???ここで文句ばっかり言ってるやつってなんなの?
0305nobodyさん
2009/01/11(日) 12:23:51ID:???原因特定できないのにチケット出す意味ない
その辺は日本公式(?)がうまく立ち回ってもらいたいところ
0306nobodyさん
2009/01/11(日) 12:36:15ID:???英語書くの遅いから嫌だ
大体、そんな苦労しなくても最初から使えるFWを使いたい
0307nobodyさん
2009/01/11(日) 12:38:18ID:???0308nobodyさん
2009/01/11(日) 13:11:03ID:???それとも新参者ばかりなの?w
0309nobodyさん
2009/01/11(日) 15:49:46ID:???0310nobodyさん
2009/01/11(日) 15:58:13ID:???別のエンジニアが保守し辛くなるし
FWの良さがなくなる
0311nobodyさん
2009/01/11(日) 18:00:58ID:???1.0正式版が出たときもそうだったぜ。
そこを自分で何とかするのがBaker。
文句いう人は他のFWを使えばいいと思う
0312nobodyさん
2009/01/11(日) 19:36:58ID:e07paZUF0313nobodyさん
2009/01/11(日) 20:09:38ID:???0314nobodyさん
2009/01/11(日) 21:14:41ID:???0315nobodyさん
2009/01/11(日) 21:53:49ID:???0316nobodyさん
2009/01/11(日) 22:57:27ID:???0317nobodyさん
2009/01/12(月) 00:44:27ID:???0318nobodyさん
2009/01/12(月) 08:02:17ID:JmkPO6xqオブジェクト指向言語の基本的な要素は持ってるけど
実際にオブジェクト指向プログラミングをやろうとすると苦労が多い
cakeのapi設計もrailsからパクった部分はオブジェクト指向的だが、cake拡張部分は関数っぽくなてる
0319nobodyさん
2009/01/12(月) 08:48:04ID:???0320nobodyさん
2009/01/12(月) 09:04:16ID:3zI01Xa5formヘルパーで、フィールド名 (field)に数字を渡すと、
0のときだけ中身が消える
$form->text('0');
とか
empty()とかでしかチェックしてないっぽいな
string型にキャストしても駄目だし
0321nobodyさん
2009/01/12(月) 09:05:10ID:???で動けばいいが、動かないし
0322nobodyさん
2009/01/12(月) 09:17:19ID:???appディレクトリの意味ねー
0323nobodyさん
2009/01/12(月) 09:38:56ID:???appディレクトリ側で /view/helper.php の置き換えできないのか?
0324nobodyさん
2009/01/12(月) 09:42:41ID:???0325nobodyさん
2009/01/12(月) 09:44:45ID:???ってまじかよ
helper.phpにバグあるんだが、直接編集しかないのかよ
FWのはずがコアのバグつぶしにすり替わって、全然進まない
0326nobodyさん
2009/01/12(月) 09:55:09ID:???俺はたぶん、次回はもうCakeは使わない
$form->text('0');
とかやると、0のときだけ
<inpute name="data[]" 〜 />
みたくなる
helper.phpのsetEntity()で、view->fieldにセットしてるとこが問題ぽい
0329nobodyさん
2009/01/12(月) 11:51:38ID:???手を入れたいというより、HTMLを自由に組みたかっただけなんだけどね
んだけど、規則からはずれると不具合がでまくる
ちなみに、
>helper.phpのsetEntity()で、view->fieldにセットしてるとこが問題ぽい
は $view->model の間違いかも
かなり深いところに原因があるっぽくて、結局、あきらめて
$form->text(null, array('name' => 'data[0]'));
$form->text(null, array('name' => 'data[item][0]'));
とかするようにした
コンポーネントとか使う場合に、また問題がでるかもしれないけど
0330nobodyさん
2009/01/12(月) 11:54:41ID:???他のシステムと連携する場合に、数値の配列形式の方が扱いやすいから
まぁ、html手打ちでもいいんだけどさ
ヘルパーとかが規約と強く結びつきだなと思った
0331nobodyさん
2009/01/12(月) 12:03:43ID:???データ追加フォーム -> データ追加 -> トップ画面にリダイレクト
としようと思うのですが、アクション名に悩んでます
add() -> ??? -> index()
???の部分をどうしようかと…
add()で分岐してもいいんですが、分けたいのですが、
なにかいい名前ありませんかね?
確認画面とかなら add_confirm() にするんですが。
0332331
2009/01/12(月) 12:05:43ID:???実際は add_item() という名前なのですが、
追加するだけのアクション名をどうしようかなと、いうことです
add_???_item() か ???_item() で
なにかいいアクション名ありませんか?
0333331
2009/01/12(月) 12:07:32ID:???update_item() とかどうですかね?
add_item()とedit_item()から共通で使えそうですし
0334nobodyさん
2009/01/12(月) 12:29:53ID:???0335nobodyさん
2009/01/12(月) 16:21:35ID:???0336nobodyさん
2009/01/12(月) 16:24:13ID:???0337nobodyさん
2009/01/12(月) 16:54:47ID:???0338nobodyさん
2009/01/12(月) 16:57:12ID:???0339nobodyさん
2009/01/12(月) 16:58:39ID:???自分の使い方がおかしいという自覚があるからに他ならないだろ
0340nobodyさん
2009/01/12(月) 17:08:56ID:???それとも、規約通りにしか作れない初心者しかいないのか?
0341nobodyさん
2009/01/12(月) 17:09:25ID:JmkPO6xq単にcakeの開発者が意図した使い方からはみ出ると途端に挙動が変になるだけ
0343nobodyさん
2009/01/12(月) 17:11:01ID:???0344nobodyさん
2009/01/12(月) 17:11:49ID:???バグと言っても良いレベルのものもたくさんあるが
組み込みで提供されてる機能が競合するのはバグと言っても良いだろ
>>339
偏屈こねる前に10回くらい読み直せ
0345nobodyさん
2009/01/12(月) 17:16:56ID:???0346nobodyさん
2009/01/12(月) 17:17:09ID:???そうだね
公式ドキュメントの半分以上は無視したほうがいいね!
設定もなんにも変えないほうがいいね!
www
0347nobodyさん
2009/01/12(月) 17:20:07ID:???次は絶対に使わないから
Cakeの開発スピードからして見つけたバグ全部修正されるのに半年はかかりそうw
0348nobodyさん
2009/01/12(月) 17:20:48ID:???0350nobodyさん
2009/01/12(月) 17:21:58ID:???どのフレームワークの信者だ
0352nobodyさん
2009/01/12(月) 17:23:19ID:???別人?なにを言ってるんだ
おまえは誰か特定の相手に話しかけてるのか?こんな場所で?
俺は今回の話題ではCakeはバグ大杉使えないFW派だよ
0353nobodyさん
2009/01/12(月) 17:23:30ID:???規約からはずれたことはするな
でも、それじゃあ大した物は作れない
組み込みのライブラリは使うな
全部自分で一から書け
FW使う意味ねーw
まぁぱっとみ使いやすいとは思うんだけどね
ここまでバグ多いとな…
0355nobodyさん
2009/01/12(月) 17:25:25ID:???問題なのはAPIじゃなくてコアのコード内部なんだよね
ハックするのも一苦労
あのスパゲッティな有様じゃCakeの将来は危ういよ
0356nobodyさん
2009/01/12(月) 17:26:23ID:???Yiiとかってどうよ
0358nobodyさん
2009/01/12(月) 17:55:17ID:???0359nobodyさん
2009/01/12(月) 17:58:23ID:???0360nobodyさん
2009/01/12(月) 18:05:28ID:???兄弟とか言われてるCIは、命名規則に統一性が乏しいし
0362nobodyさん
2009/01/12(月) 19:32:11ID:???どう理解すればいいの?
http://www.google.com/trends?q=cakephp%E3%80%81symfony%E3%80%81zend+framework%E3%80%81mojavi%E3%80%81ethna
0363nobodyさん
2009/01/12(月) 19:35:28ID:???HOWTO情報の多さだからでしょ
使ってる人たちはCakeしか使ったことないんじゃないの
0364nobodyさん
2009/01/12(月) 19:40:29ID:???重さって気にする意味無いよね
重さで言えばRoRとか死ぬほど重いんだし
0365nobodyさん
2009/01/12(月) 19:43:30ID:???0366nobodyさん
2009/01/12(月) 20:59:16ID:???$form->input('honbun', array('type'=>'textarea', 'cols'=>'10', 'rows'=>'5'));
で横幅のせまいtextareaを表示したいのですが、何かヒントありませんか?
0367nobodyさん
2009/01/12(月) 21:10:40ID:???なんで、モデルで使えないのかね
0368nobodyさん
2009/01/12(月) 21:13:12ID:???0369nobodyさん
2009/01/12(月) 22:33:10ID:???cake.generic.css
input, textarea {
width: 100%; ←これ?
}
0370nobodyさん
2009/01/12(月) 22:57:16ID:???app/webroot/css/cake.generic.css
input, textarea {
/* width: 100%; */
}
width: 100%をコメントにすることで
$form->input('honbun', array('type'=>'textarea', 'cols'=>'80', 'rows'=>'5'));
textareaの横幅(cols)設定が有効になるようになりました。ありがとうございました。
合わせて、
$form->input('meado', array('type'=>'text', 'size'=>'50'));
のsize設定も有効になり二重の喜びです。ありがとうございました。
0372nobodyさん
2009/01/12(月) 23:11:10ID:???データを永続化するのがモデルであって
セッションってのはデータでhiddenで引き回してるのと同じようなことだから
0373nobodyさん
2009/01/12(月) 23:33:55ID:???たしかに、とっつきやすさはsymfonyやzendよりも上だと思うが
それだけなんだよね。
PHP使ってるやつはプログラム自体初心者が多いんだろね。
チュートリアル作って終わりなやつが多いんじゃね?
0374nobodyさん
2009/01/12(月) 23:39:43ID:???0375nobodyさん
2009/01/12(月) 23:44:35ID:???フレームワークを使うほどの開発になった時点で
0376nobodyさん
2009/01/12(月) 23:50:55ID:???専用サーバならJavaにした方が楽だし
0378nobodyさん
2009/01/12(月) 23:56:14ID:???個人だろうと企業だろうと普通はその程度の自由度はある環境でやってるよ
0379nobodyさん
2009/01/13(火) 00:36:35ID:???レンタルサーバで動かすCMSとかDBのCRUDがメインのシステムならぴったりだけどさ
0380nobodyさん
2009/01/13(火) 11:22:28ID:???0381nobodyさん
2009/01/13(火) 11:48:16ID:???TwitterやCookPad、楽天でもRoRを使ってるのすら知らんのか。
そういえばここCakePHPスレだったなw
0383nobodyさん
2009/01/13(火) 15:39:41ID:???Ruby動かせないときもあるしなあ
0385nobodyさん
2009/01/13(火) 22:27:13ID:???データ登録以上にワークフローと帳票が多い
0386nobodyさん
2009/01/13(火) 22:33:33ID:???結局はCRUDだしなぁ。
0387nobodyさん
2009/01/13(火) 22:58:25ID:???0389nobodyさん
2009/01/13(火) 23:58:47ID:???作るたびに炎上させる優秀な技術者様達
0390nobodyさん
2009/01/14(水) 13:24:41ID:???モデルは、テーブルと対になるようにして1つのモデルにするのがよいか、
それともコントローラと対にするか、どちらが一般的でしょうか?
例えば受注テーブルがあり、
あるコントローラでは受注数を表示するのがメインの処理で、
また別のコントローラでは受注金額を表示するのがメインの処理、
のような場合、受注テーブルのモデルを1つ作成するのか、それとも
コントローラ毎に作るのか…。
0391nobodyさん
2009/01/14(水) 13:42:37ID:???0393nobodyさん
2009/01/14(水) 13:45:45ID:???コントローラーってのは要するに人がプログラムにアクセスする時のURLなわけよ。
だから人から見てわかりやすけりゃ良いわけで、モデルと対になってる必要なんて無い。
ってのが俺の考え。
逆に同じテーブルにモデルがいくつもあったらプログラム作る時に混乱するんじゃない?
それぞれ特殊なfindメソッドでも作ってるんなら別だけど。
0394nobodyさん
2009/01/14(水) 14:52:22ID:???0395nobodyさん
2009/01/14(水) 14:53:24ID:???今回質問したのは、>>393 の
「それぞれ特殊なfindメソッドでも作ってるんなら別だけど。 」
がまさしくそれで、取得対象のテーブルは1つなんですけど、
そのデータの取得方法や見せ方が全然違って、ただ当然コントローラは
個別に存在するので、
1つのテーブルを元にその見せ方毎にモデルを作りモデルの中で、
var $name = 'table'; としておきつつ、
それぞれの取得するためのメソッドを作成していこうかな、と思い作りはじ
めた矢先、取得テーブルは1つなので、そのモデルに全部メソッドをまとめた
ほうがいいのか?と迷いはじめてしまい…。
テーブル単位にメソッドをまとめるのか、機能毎にモデルを分割するのか…。
まだまだ精進がたりませんね、大変すみませんでした。
0397nobodyさん
2009/01/14(水) 15:11:54ID:???findメソッドは、カンタンにオーバーライドできる
テンプレの↓参照
CakePHPを使ったMVC設計のベストプラクティス - Sooey
ttp://www.sooey.com/journal/2008/03/26/717/
0398nobodyさん
2009/01/14(水) 15:49:49ID:???>テーブル単位にメソッドをまとめるのか、機能毎にモデルを分割するのか
一律的な分け方をすると後で縛りがきつくなるから
機能目的によってバランスよく分別した方がよい
0399nobodyさん
2009/01/14(水) 15:51:45ID:???2モデルを1つのテーブルに格納することが可能だから
0400nobodyさん
2009/01/14(水) 15:59:26ID:???後退的議論で無意味
0401nobodyさん
2009/01/14(水) 16:02:02ID:???何を作るか?どんな機能を作るかを前提してから
モデルとテーブルの対の議論をしないと
抜け穴からのもぐら叩き合戦になるよ
0402nobodyさん
2009/01/14(水) 20:32:29ID:???ガイドブック買ってやってみたけど早々に躓いて
しまいました。
0403nobodyさん
2009/01/14(水) 21:28:26ID:???ガイドブックで1.2で始めるのは初心者にはつらいと思う。
「CakePHP徹底入門」は1.2で書いてあるから1.2入門者にお勧め。
ガイドブックも良著だから、1.2の入門が終わってから読み直す
ことを勧めるなあ。
0404nobodyさん
2009/01/15(木) 04:27:43ID:???それも星一つ。自分は少し立ち読みしただけだから何とも言えないが・・
ガイドブックは評価が高いけど
0405nobodyさん
2009/01/15(木) 12:14:25ID:???0406nobodyさん
2009/01/15(木) 18:02:47ID:???> パターンは極めて限られていると見積もったCRUDシステムを
> 作るたびに炎上させる優秀な技術者様達
なんで炎上させないといけないんだよw
お前の会社か?それ。
0407nobodyさん
2009/01/15(木) 19:16:12ID:???なんかいい方法あるのかな
0408nobodyさん
2009/01/15(木) 23:13:14ID:???0409nobodyさん
2009/01/15(木) 23:16:50ID:???0410nobodyさん
2009/01/16(金) 00:17:54ID:???0411nobodyさん
2009/01/16(金) 00:21:09ID:???0412nobodyさん
2009/01/16(金) 01:45:44ID:???0415nobodyさん
2009/01/16(金) 18:16:16ID:???'この番号は使用できません'って出力してdata[]にそのまま残すのも間抜けなので、
data[]を使用した'message'を設定してdata[]消したいんですけどよく分かりません
通常ルールでのチェックも行っているので、View側でエラーメッセージチェックしてから
特定のエラーメッセージのときだけdata[]からメッセージ作成して
input value= にセットされないように処理するって何か変な気がしたので
0416nobodyさん
2009/01/16(金) 18:30:22ID:???説明下手なきがするのでやりたいこと
入力フォーム→結果の表示フォームとエラー
[ab]→[ab]数字で入力しやがれ
[25]→[25]25は使えねえぜ
0417nobodyさん
2009/01/16(金) 21:29:52ID:???しかも普通にPHP標準のメール送信機能使うと化けないケースで化けたりするから困る
また組み込みライブラリの糞ソースを修正する作業が始まるのか・・・
0418nobodyさん
2009/01/16(金) 21:37:31ID:???問題ないようにしているけど?
オブジェクト指向になっているおかげで
いくつかのメソッドをオーバーライドするだけですんだ。
0419nobodyさん
2009/01/16(金) 21:40:49ID:???ファイルの文字コードとか問題ないの?
0420nobodyさん
2009/01/16(金) 22:28:03ID:???本文も特定のパターンで化ける
0421nobodyさん
2009/01/16(金) 22:36:11ID:???0422nobodyさん
2009/01/16(金) 22:38:28ID:???0423nobodyさん
2009/01/16(金) 22:39:12ID:???どうやってエンコはさめばいいの?
本体のコード見て解析してエンコードはさむくらいしか思いつかないんだけど。
0424nobodyさん
2009/01/16(金) 22:42:13ID:???0426nobodyさん
2009/01/16(金) 22:49:09ID:???メールのエンコードも完璧なFWをさ
0427nobodyさん
2009/01/17(土) 10:19:42ID:???0428nobodyさん
2009/01/17(土) 11:36:23ID:???# If you are using AuthComponent without SecurityComponent you should update to CakePHP 1.2.1.8004 asap (gwoo)
だってさ
0429nobodyさん
2009/01/17(土) 11:38:12ID:???http://cakephp.org/files/Resources/CakePHP-1.2-Cheatsheet.pdf
0431nobodyさん
2009/01/17(土) 14:40:37ID:???これはいいね。早速プリントした。
あと、毎回html->linkの何番目をfalseだっけ?ってマニュアル見なきゃならん俺のために
付属のヘルパー分もお願いしたい。
0432nobodyさん
2009/01/18(日) 11:31:02ID:???http://groups.google.com/group/cake-php/browse_thread/thread/659682805f3d71d7
Essentially, an attacker may be able to obtain credentials as the first user of the system.
If you are interested in testing your site, you can use the SQL Inject Me plugin
for Firefox
0433nobodyさん
2009/01/19(月) 16:13:21ID:???確認画面いって入力画面に戻るとハッシュ化されたものがパスワードのとこに入る
そしてまた確認画面に行くと再度ハッシュ化される
登録されるのは2度ハッシュ化されたデータ
当然認証は通らない
これはどうすれば?
0434nobodyさん
2009/01/19(月) 16:21:13ID:???0435nobodyさん
2009/01/19(月) 16:23:37ID:???0436nobodyさん
2009/01/19(月) 17:12:40ID:???formへるぱーで'value'=>false指定すればよろし
0437nobodyさん
2009/01/19(月) 17:15:56ID:???既にハッシュ化してるんだからそのまま入れてもセキュリティ上問題無いのに
ハッシュ化されていれば再ハッシュ化は行わないようになってくれてたら良かった
フォームのパスワードの初期値と送信されたデータが同じだったらハッシュ化はしない
とするだけで出来たはずなのにな
0438nobodyさん
2009/01/19(月) 17:38:24ID:???ハッシュ化のタイミングでセッションは既に今送信されたデータに書き換えられてて
元あったものとの比較が出来なくなってる
これ以上手間が要るならめんどくさいなー
0439nobodyさん
2009/01/19(月) 17:45:57ID:???0440nobodyさん
2009/01/19(月) 18:11:18ID:???どういう仕様になってるんだろ
passwordフィールドはハッシュ化されるが
password_confirmはハッシュ化されない
おかげで確認画面にいってから戻るとパスワードが違うと言うエラーが出る問題も絡んでくる
0441nobodyさん
2009/01/19(月) 18:17:05ID:???passwordもpassword_confirmも同様にハッシュ化して
フォームの初期値から変更がなければハッシュ化は行わない、
と言う設計にすべきだと思う
でもこれをやるには今のAuthコンポーネントの仕様からじゃだいぶ手間がかかる
0442nobodyさん
2009/01/19(月) 18:26:26ID:???Authの自動ハッシュ化を無くして
手動でハッシュ化するのが一番楽だわ
0443nobodyさん
2009/01/19(月) 19:02:35ID:???0444nobodyさん
2009/01/19(月) 19:20:43ID:???自動ハッシュ化止めてセーブ時とログイン時にハッシュ化するようにしたらできたくせえ!
0445nobodyさん
2009/01/19(月) 22:36:21ID:???name="raw_password"
name="raw_password_confirm"
にしといて、
validateでは、
raw_passwordとraw_password_confirmを比較
saveの前にpassword = raw_passwordしとくのは?
0446nobodyさん
2009/01/19(月) 22:42:10ID:???コンポーネントに手入れ無くて良いし
でもAuthで暗黙的にハッシュ化されるわりにそれを意識したコーディングになってるから
違和感はあるけどね
それなら明示的に書く方が、とおもう
0447nobodyさん
2009/01/20(火) 00:34:26ID:???0448nobodyさん
2009/01/20(火) 00:36:53ID:???普通再入力の際にはパスワードは消えてるでしょ
0449nobodyさん
2009/01/20(火) 02:09:06ID:???ビューからアクションを呼び出す事って出来ないのかな?
0450nobodyさん
2009/01/20(火) 02:15:23ID:???0451nobodyさん
2009/01/20(火) 02:47:07ID:W42hdWVLiis,oracle,php5インストール後、
cakePHP入れて、ブログのチュートリアルやってんだけど、
ビュー作って確認するところのテーブル一覧表示で日本語データが表示されません。
半角英数ですと表示されます。数値、日時も問題なく表示されています。
db内には、正しい全角データが入っているのですが、
なぜでしょう?
0453nobodyさん
2009/01/20(火) 02:50:47ID:W42hdWVL両方、utf8です。
0454nobodyさん
2009/01/20(火) 03:21:49ID:???0456nobodyさん
2009/01/20(火) 13:54:45ID:???phpのinternal_encodingとかその辺の設定確認
あとcakeを介さず直接接続→出力が文字化けするか否か確認
0458nobodyさん
2009/01/20(火) 16:57:25ID:???0459nobodyさん
2009/01/20(火) 17:03:38ID:b4+xy3zg0460nobodyさん
2009/01/20(火) 17:07:06ID:???0461nobodyさん
2009/01/20(火) 17:13:23ID:???0462nobodyさん
2009/01/20(火) 17:41:48ID:???非常に分かりやすくなった
0463nobodyさん
2009/01/21(水) 01:59:22ID:???webルートにアクセスすると、一応/users/loginへ
リダイレクトされるんだけど、そこでurlを/users/indexって
書き替えると、ログインしてなくてもユーザーの一覧が
見えてしまう。(´・ω・`)
0464nobodyさん
2009/01/21(水) 05:54:40ID:???0465nobodyさん
2009/01/21(水) 10:09:05ID:???Controllerには許可する方を書くわけだから不要だと思う
>>463
ほかのControllerでも同じ症状なら、scaffoldが原因だろうけど、、、
0466nobodyさん
2009/01/21(水) 10:42:49ID:???やっぱ、scaffoldが原因かなぁ。
ちゃんと全部自分で書かないとダメか。
0467nobodyさん
2009/01/21(水) 10:48:54ID:???この問題にぶちあたって、結局1から書くことになる
すべてのactionを
0468nobodyさん
2009/01/21(水) 10:55:35ID:???beforeFilter()でaction名を見て、適宜login()に飛ばしてみたら?
0469nobodyさん
2009/01/21(水) 11:01:21ID:???// リダイレクト
}
0470nobodyさん
2009/01/21(水) 11:34:17ID:???scaffoldを使わないのが正しいやり方だと思う。思うけどね。
0471451
2009/01/21(水) 16:59:21ID:???>>456
> >>451
> phpのinternal_encodingとかその辺の設定確認
この辺りの設定も甘い所がありましたが、utf8で調整するも変わりませんでした。
で切り分けるためにも下を行ったのですが・・・。
> あとcakeを介さず直接接続→出力が文字化けするか否か確認
直接データもらうと、sjisで出力されてきて意味がわからず悩みました。
知っている人はなんでもないんでしょうけど。
で、結構な時間を費やしDBからデータ出力の時点があやしいとなり、
いろいろググってたら判明!
CAKEインストの時のDB設定で文字コード設定があることがわかり、
(設定した時は、どこぞのブログの設定をコピペしてきたんで文字コードを
設定している意識がなかったorz)確認するとsjisになってた、でこれをutf8へ
指定して、cakeの問題無くDBデータが表示されることが確認出来た。
で、ここで疑問が直接もらうとなぜSJISでもらうのか、
恐らくcakeでsjisからutf8へ文字コード変換してることになるんだと思うけど、
結局、oracleが出力文字コードを変えるようで、OSの環境変数を設定して、
NLS_LANG=JAPANESE_JAPAN.AL32UTF8
問題無く直でもutf8で出力されることを確認。
ふー時間くったー。
途中oracleの調子が悪くなって、再インストに見舞われるし。
チュートリアルを進めよう〜。
0472nobodyさん
2009/01/21(水) 17:57:23ID:???へぇ〜、いまはOracleでもまともに動くんだなぁ。
2年位前はDBO周りがバグだらけで使い物にならなかったけど。
0473nobodyさん
2009/01/21(水) 20:17:56ID:???機能制限みたいなものはACLでやるんだけど
同じ機能でもオブジェクトのidによって変わる、みたいなのもACLでやるべきなのかな?
0474nobodyさん
2009/01/22(木) 01:10:40ID:???親モデルの奥に配置するにはどうすればいい?
Model1->find('all',array(
'contain'=>array(
'Model2'
)),
結果:
array(
[0]=>array(
[Model1]=>array(),
[Model2]=>array(),
)
)
0475nobodyさん
2009/01/22(木) 10:29:14ID:???0476nobodyさん
2009/01/22(木) 12:48:42ID:???どのあたりのソースを見ればよいのでしょうか?
/app/config/database.php.default
に接続情報がありますが
これらの情報を使用して接続している部分あたりを見たいです
0477nobodyさん
2009/01/22(木) 12:53:15ID:???cake/libs/model/datasources
cake/libs/model/datasources/dbo
あたりかな
0478nobodyさん
2009/01/22(木) 12:54:16ID:???接続に言ってる所と言うのならその下のdatasources/dboの下
0479nobodyさん
2009/01/22(木) 15:44:55ID:???みんなはDBスキーマはどうやって管理してる?
前スレを見たら少し話題になってたけど、なんかgdgdに終わってた。
0480nobodyさん
2009/01/23(金) 00:16:41ID:???二重投稿防止しようとしてるんだけど全然防止できない
saveした後に明示的にセッションからトークン消してやればうまくいくんだけど、
皆様方そんなことをしている様子はないし
http://www.1x1.jp/blog/2006/12/cakephp_csrf.html
やってることはほぼこのまんま
1.2なんで$formでフォーム生成してるのが違うくらい
フレームワーク使ってるってのに全然サクサク感がねぇー
0481nobodyさん
2009/01/23(金) 02:23:23ID:???とりあえず、普通にSQLでやってる。
create_tables.sqlとか適当なファイルにcreate table文まとめてる。
で、Subversionで管理。
ほんとは、マイグレーションあると便利だけどね。
こんな感じの使い方ができるPHPスクリプトを作ればいいんだけど、
面倒だからやってない。でも、そのうちやるつもりw
php rake.php db:migrate
php rake.php db:migrate VERSION=3
php rake.php db:create
php rake.php db:drop
0482481
2009/01/23(金) 02:38:24ID:???知らなかったわ。
今度試してみよう。
0483nobodyさん
2009/01/23(金) 04:06:53ID:???マニュアルのauthコンポーネントとACLのページを少ないから読んで見るといいかも
単純なログイン後とログインして無いとかならauthでいける
0484nobodyさん
2009/01/23(金) 07:29:32ID:YSArohX3一番新しいcreatedのデータを取得したりとかって、簡単にできますか?
やり方があれば、教えてください。
0486nobodyさん
2009/01/23(金) 10:46:31ID:???自分もこういうのを見つけていた。まあ「cakephp migration」でググっただけ
だけど。
"CakePHP migration" フォーラム - CakePHP Users in Japan
http://cakephp.jp/modules/newbb/viewtopic.php?topic_id=1176&forum=3
CakePHP のおいしい食べ方: DBマイグレーションか、DBスキーマシステムか
http://cakephp.seesaa.net/article/97882341.html
誰か使っている人いないかな。
0488nobodyさん
2009/01/24(土) 16:41:32ID:???/document_root/siteA/ 配下と
/document_root/siteB/ 配下でわけたい。
siteA 配下は 教師モデルを対象に認証済みのユーザーはアクセス可能とし、
siteB 配下は 生徒モデルを対象認証済みのユーザーを対象にする。
当然、教師認証済みであってもは siteB にはアクセスできず、生徒は認証済みであっても
siteA にはアクセスできない
みたいな事がやりたいんですが。。。
0489nobodyさん
2009/01/24(土) 16:51:08ID:???0490488
2009/01/24(土) 17:14:12ID:???がんばって読んでみたんですが、そもそもユーザー認証を行なうモデルが異なる場合は
対応できないように思いました。
今回は、教師と生徒で登録されているテーブルが違うのでログインページも教師用と生徒用があります。
教師は siteA/login.php にて。生徒は siteB/login.php にて認証します。
で、教師でログインした場合は siteA 配下のみアクセス可能。生徒でログインした場合は siteB のみ
アクセス可能としたい。
かっこ悪いすが、サブドメインきって cake そのものを2通り用意したほうが簡単かもしれないと思ってしまいました。
何かよい方法があればいいな、と。
0491nobodyさん
2009/01/24(土) 22:19:27ID:???0492nobodyさん
2009/01/24(土) 22:20:11ID:???プログラマーのやり方じゃない
0493nobodyさん
2009/01/24(土) 22:44:47ID:???初心者がcakeのソースなんて追え無いんだから。
0495nobodyさん
2009/01/25(日) 11:58:58ID:???お前らのコントローラーの行数は最大でどの位ですか。
0496nobodyさん
2009/01/25(日) 12:03:41ID:???0497nobodyさん
2009/01/25(日) 19:50:45ID:???CakePHPの命名規則って、かなりでたらめ?
0498nobodyさん
2009/01/25(日) 21:22:02ID:???一つのクラス(コントローラー)の行数を短くしろとは
あまり聞かない。
0499nobodyさん
2009/01/25(日) 23:34:20ID:???「CakePHPポケットリファレンス」の命名規約(p.406-408)で
「これ、おかしんじゃない」のワースト3を教えて。
ttp://book.cakephp.org/ja/complete/22/CakePHPの規約
0500nobodyさん
2009/01/25(日) 23:37:01ID:???なんか楽しいw
0501nobodyさん
2009/01/26(月) 00:04:38ID:???コントローラーの命名規則
英単語の単数形+"Controller" って書いてるのに、例が PowerUsersController
モデル名+"_id"って書いてるのに、例がpower_users_id
あとある?
0502nobodyさん
2009/01/26(月) 01:11:31ID:???コントローラの命名規約
○クラス名 英単語の複数形+"Controller" PowerUsersController
テーブルとカラムの命名規約
○外部キー モデル名+"_id" power_user_id、article_id
(モデル名は単数形だよね。)
修正しました。
0503nobodyさん
2009/01/26(月) 10:35:54ID:???$form->create('User');
で作っていたとしたらどういう変数名・配列構造でセットすればいいの?
0505nobodyさん
2009/01/26(月) 12:24:49ID:j8WtT0GU1.2.1.8004へアップデート推奨らしいぞ。
http://cakephp.jp/modules/newbb/viewtopic.php?topic_id=1696&forum=1&post_id=4032#forumpost4032
http://www.pseudocoder.com/archives/2009/01/22/cakephp-digest-6/
0506nobodyさん
2009/01/26(月) 13:21:32ID:???0508nobodyさん
2009/01/26(月) 16:40:15ID:j8WtT0GU0509nobodyさん
2009/01/26(月) 20:39:14ID:???マニュアル見ても、よく分からん。
0511nobodyさん
2009/01/26(月) 23:57:03ID:???よくわからんままやったら、
フィールド消えたわ
まじか、これ
0512nobodyさん
2009/01/27(火) 10:11:27ID:???0513nobodyさん
2009/01/27(火) 11:51:11ID:???testsuiteの解説がガイドブックとかに無いし、
web上にもあんまり情報が無いので、よくわからん。
でも。simpletestをインスコしたら、bakeの際に
いろいろ聞かれなくなったのは楽だな。
0514nobodyさん
2009/01/27(火) 12:20:04ID:???設置 URL が example.jp/t/ の時、tests というコントローラにアクセスしようと、
http://example.jp/t/tests/ ってやると、http://example.jp/t/ests/ に勝手になってしまって
Error: EstsController could not be found.
となります。 t に限らず webrootが1文字で とコントローラの最初の一文字が同じだと
上記のようになると思いますが、何か注意するところはありますか?
0515nobodyさん
2009/01/27(火) 12:32:20ID:???http://cakephp.jp/modules/newbb/viewtopic.php?topic_id=1706&forum=6&post_id=4025#forumpost4025
これと同じかな
0516nobodyさん
2009/01/28(水) 11:36:58ID:AHb2WVE2どうすればいいのでしょうか?
php直ですと日本語テーブル名でクエリは通ります。
0517nobodyさん
2009/01/28(水) 12:33:02ID:???とりあえず、認識した。
0518nobodyさん
2009/01/28(水) 18:06:35ID:???testって、データを入れて出して一致してるか確認してるんだって事が
ようやく少し分かった。
0519nobodyさん
2009/01/28(水) 18:29:34ID:???別に日本で使うシステムなら問題ないんだけどな
Oracle/Access+VBのシステムなんかよくあるし
PHPだって変数名ですら全角文字でもOKなんだし
0520nobodyさん
2009/01/28(水) 19:00:41ID:???全角って、そんなに変じゃないの?
bakeする時に日本語で全部作ってくれると楽そうだなーって思ってた。
多言語化を考える必要なんて全くない物を作るのにi18nすら面倒で、
ソースに日本語のエラーメッセージを書いてやろうと思ってた。
0521nobodyさん
2009/01/28(水) 19:02:34ID:???0522nobodyさん
2009/01/28(水) 19:04:55ID:???海外製のライブラリは対応出来てないものが多いし
結局、全角ゴリ押しは開発者側に負担を強いることが多いよ
プロジェクト内で使う環境を全部調査して、誰にも迷惑かけないと判明したら使えばいいと思うけど
0524nobodyさん
2009/01/28(水) 20:22:20ID:???cake bake allしてみた。
コンソールは微妙に文字化けしてたけど、難なく焼けた。
でも、アクセスしたらエラーが出た。ファイルを見たら、
ファイルがshift jisで認識されて、日本語部分は全部文字化け。
こんなことで苦労したくないので、これ以上は試すの止める。
0525nobodyさん
2009/01/29(木) 05:37:51ID:???いただきます。
今まで自作の簡易フレームワークで業務アプリを作ってきました。
画面数は数十あります。
表示はSmartyを使っています。
これを少しづつCakePHPに置き換えたいと考えていますが、
フレームワークを変更するとかなり大掛かりな作業になりそう
ですし、部分的に置き換えていくのが実際できるのかわかりません。
CakePHPは、上述のように既存のWebアプリを部分的に置き換えていける
ものなのでしょうか?
それとも、新規Webアプリから採用するべきものなのでしょうか?
0527nobodyさん
2009/01/29(木) 11:51:59ID:???最低クリアされるべき条件
・DBの構造(idとか)
・URL(/controller/action/param.. の形式)
がクリアされないといけない
そのうえで、Modelごと(≒tableごと)移行していくというのであれば、不可能ではないと思うが。
現実的には、DBを共通化して、Cakeによるサイトを作っていき、同時に稼働させてテストし、一気にリプレイスってことになりそうな気がするけど、どうなんだろうね。
ただ、Cakeに慣れるまである程度時間がかかるから、いずれにせよ新規アプリから始めないと、苦労すると思うよ。
0528525
2009/01/30(金) 06:58:44ID:???レスありがとうございました。
やはり新規案件からCakePHPをはじめたほうが無難ですね。
スキルを醸成してから、既存システムの変更を検討します。
0529nobodyさん
2009/01/30(金) 11:51:03ID:???データを引数に持たせてインスタンス同士をいろいろ比較してくれるクラスを
昔作ったんだけどどう持ち込めばいいのかわからない
0530nobodyさん
2009/01/30(金) 17:53:58ID:???1.2になってModel::findが大幅に機能強化されたのに、
記述が少なすぎる。もしくは、Model::generateList()
のページに代わりの方法が書いてあればいいが、
Model::find()だけでは意味不明だろう。
0532nobodyさん
2009/01/30(金) 18:55:05ID:???0533nobodyさん
2009/01/30(金) 19:21:00ID:???アソシエーションを使う方がいいのか、
Controller::usesで直接指定する方がいいのか。
0534nobodyさん
2009/01/30(金) 19:29:43ID:???たぶん親モデルと関連してるレコードしか該当しないよ
0535nobodyさん
2009/01/30(金) 23:31:39ID:???0536nobodyさん
2009/01/31(土) 01:44:15ID:ZNZRtHpp0537nobodyさん
2009/01/31(土) 04:27:13ID:???なるほど。
urlでパラメータを渡すなら、redirectでも良さそう。
でも、urlだと大きなデータは渡せないよね。
データが丸見えになるし。
あと、同じウィンドウの中でのみ渡すってなると、
どんな方法が良さそう?
0539nobodyさん
2009/01/31(土) 05:48:56ID:???いけるかな?と思ったが、甘かった。同じブラウザでは
renewする前のが消える。
別のブラウザなら大丈夫だった。(当たり前か)
0540nobodyさん
2009/01/31(土) 08:38:22ID:???ユニークキーの発行が正しい。
0541nobodyさん
2009/01/31(土) 09:18:36ID:???0542nobodyさん
2009/01/31(土) 09:28:15ID:???今CakePHPが注目を集めている為、素人が「PHPフレームワークなら俺にも何か簡単に
Webアプリが作れるかな。」という気になっているじゃない?
見方を変えるとCakePHPの功績は大きいかも?
0543nobodyさん
2009/01/31(土) 09:38:59ID:???0544nobodyさん
2009/01/31(土) 09:47:48ID:???0545nobodyさん
2009/01/31(土) 10:44:44ID:???0546nobodyさん
2009/01/31(土) 10:46:19ID:???保守不可能なシステムを作ってそう
0547nobodyさん
2009/01/31(土) 11:16:37ID:???exe屋だったら最初そんなもんだろ。
まあ、フレームワーク知識自慢しかできないようじゃ、
お前らすぐに抜かれるよ。
0548nobodyさん
2009/01/31(土) 13:50:46ID:???自作クラスなんてコンポーネントにしちゃえばいいよ。
で、コントローラーで
$this->Myclass->eat('hoge');
で。
>>535
作り方としてデータを渡したいような内容のものがあるならモデルに書いた方がいい。
で、コントローラーからそのモデルのアクションを読み出してデータを取得。
0549nobodyさん
2009/01/31(土) 16:13:14ID:x6QrlarVなにか方法があれば教えていただけませんでしょうか?
0550nobodyさん
2009/01/31(土) 16:23:21ID:???0551nobodyさん
2009/01/31(土) 17:40:26ID:???0552nobodyさん
2009/01/31(土) 17:50:06ID:???0553nobodyさん
2009/01/31(土) 18:44:40ID:???あるあるwwww
JavaScriptでもundefinedとunidentifiedをよく間違えるんだよな
0554nobodyさん
2009/01/31(土) 18:55:23ID:???なにかあるたびに配列にミスが無いかチェックしてるわ
0555nobodyさん
2009/01/31(土) 19:10:10ID:???0556nobodyさん
2009/01/31(土) 19:38:57ID:???ttp://www.openpne.jp/archives/1117/
と言う事は、OpenPNE3.0はPHP4のサーバにはインストール出来ないと言うことか?
多くのアプリがPHP4で開発されたもので、PHP5での稼働が保証されていないので、
サーバのPHPを5に出来ないんだよな。
0557nobodyさん
2009/01/31(土) 21:24:40ID:???モデルAとモデルBで、一応形としては
A hasMany B
B blongTo A
なんだけど、普段必要になるのは、Bのうちnot deleteのフラグが立ってる
1つのデータだけなのよ。そして、まれに(not delete関係なく)全ての
データが必要になる。これをどう扱ったら良い?
A hasOne B
にしても、BにA_idというフィールドが必要なだけに、こちらが望む
通りに紐付けするには条件(not delete=true)が足りない気がするし、
SQLの実行に時間や負担がかからないか心配だし、汎用性がどうか?
Bのデータをidで直接呼び出した方が早いような気がしたので・・・
Aに、not deleteに当るBのデータのidを入れるフィールドを作っていて、
AのコントローラでBのモデルも扱ってread(Bのid)ってするつもりだった。
だけど、このやり方って変?
0558nobodyさん
2009/01/31(土) 21:53:45ID:???ゆとりなの?死ぬの?
こんな風に A のモデル書いて
class A extends AppModel
{
var $hasMany = array('B' => array(
'className' => 'B',
'conditions' => array('B.delete' = 'not delete'),
),);
function hogehoge()
{
unset($this->hasMany['B']['conditions']['B.delete']);
return $this->find('all');
}
}
で、普段はコントローラから $this->A->find() でデータ取得して、
B.delete を無視する時は $this->A->hogehoge() 使うようにするだろう。jk
0559nobodyさん
2009/01/31(土) 23:42:40ID:???0560nobodyさん
2009/02/01(日) 01:12:20ID:???$data = array(
array(
'User' => array('id' => 1, 'name' => 'suzuki'),
'Tag' => array(
array('id' => 1, 'title' => 'hoge'),
array('id' => 2, 'name' => 'fuga')
),
),
array(
'User' => array('id' => 2, 'name' => 'sato'),
'Tag' => array(
array('id' => 1, 'name' => 'piyo'),
array('id' => 3, 'name' => 'moge')
)
)
);
$result = Set::extract('/Tag[id=1]/..', $data);
debug($result);
このとき$resultには、結果的に$dataと同じデータが入ると思うんですが、
「Notice (8): Undefined offset: 1 [CORE/cake/libs/set.php, line 415]」
というエラーが出て、2つめのデータが表示されません。何が原因なのでしょうか?
0561560
2009/02/01(日) 01:26:07ID:???PHPのバージョンは5.2.8、CakePHPのバージョンは1.2.1.8004です。
あと「array('id' => 1, 'name' => 'piyo'),」は、
「array('id' => 1, 'title' => 'hoge'),」とした方が自然ですね。
よろしくお願いします。
0562nobodyさん
2009/02/01(日) 22:33:35ID:???よくわからんけど。
Tagの添字のID=1が二つあるからじゃね?
それ以外の条件での検索については、エラーは出ないし。
0563nobodyさん
2009/02/01(日) 22:46:30ID:???基本は A hasMany B , B belongTo A なんだけど、
AとBは hasAndBelongToMany でもある。
(Aが担当教員で、Bが生徒と思えば。
Aの中に担任が一人居るような感じ。)
belongTo のAと、hasAndBelongToManyのAsを
どうやって取得し分けたらいい?
0565nobodyさん
2009/02/02(月) 05:46:05ID:lBmCzdKablog、どこにあったか知ってるひといたら教えてプリーズ
あとで見ようとしててどっかにいってしまいました
0566563
2009/02/02(月) 15:51:42ID:???一方を取得したくない時には、それでいけそうです。ありがとう。
だけど逆に、両方取得したい時に困りました。
当たり前かもしれませんが、両方が同じ変数に混ざってしまいます。
[B] => Array
(
[id] => 1
[name] => hoge
[0] => Array
(
[id] => 1
[name] => hoge
[AsB] => Array
(
[id] => 4
[A_id] => 1
[B_id] => 1
)
)
)
これ、どうやって分離する?
もしくは、別々の変数でとり出す方法は?
それとも、そもそもデータベースの設計がおかしい?
0567nobodyさん
2009/02/02(月) 16:28:39ID:???良くのみこめてないけど、tableに問題がありそうなきがする
teachers , students があるのかな?
classes があればすべて解決するような気がするけど違うのかい?
0568563
2009/02/02(月) 19:05:21ID:???だからgroupsも作ってあるけど、classesやgroupsのいずれでも
B blongsTo〜の関係にならないのです。
0569nobodyさん
2009/02/02(月) 19:06:34ID:???逆転しそう
0570nobodyさん
2009/02/02(月) 19:55:59ID:???いやいやそういうこっちゃないでしょ
もっと具体的に書いてみたらどうよ。
「A hasMany B , B belongTo A なんだけど、 AとBは hasAndBelongToMany でもある」って言われてもねえ
関係するModelと、そこで使われているアソシエーションの内容を、具体的にたのむ
0571nobodyさん
2009/02/02(月) 20:48:11ID:???これってGoogleでの検索件数のトレンドグラフだよねえ。
CakePHPは色々と問題が多くて、その解決法を探す為にみんなせってと「CakePHP」
キーワードで検索をしている。だから最近検索件数がウナギ登りなんだ。
と言う見方もあるのかなあ?世間の注目を集める為のCakePHPの戦略では?
0573563
2009/02/02(月) 21:22:19ID:???id
name
personsテーブル
id
name
user_id //これが主たるuser
persons_usersテーブル
id
person_id
user_id //その他のuser
Userモデル
var $hasMany = array('Person' => array('className' => 'Person',
'foreignKey' => 'user_id'));
Personモデル
var $belongsTo = array('User' => array('className' => 'User',
'foreignKey' => 'user_id'));
var $hasAndBelongsToMany = array('User' => array('className' => 'User',
'joinTable' => 'persons_users',
'foreignKey' => 'person_id',
'associationForeignKey' => 'user_id',
'unique' => true));
0574563
2009/02/02(月) 21:23:10ID:???class PersonsController extends AppController {
function view($id = null) {
$this->set('person', $this->Person->read(null, $id));
debug($this->Person->read(null, $id));
}
}
すると、$person['User']に、>566みたいに、belognsToとhasAndBelongsToManyの
両方のデータが入ってしまう。
['User'][id]
['User'][name]とかは、blongsToのデータ
['User'][0][id]
['User'][0][name]とかはhasAndBelongsToManyのデータだと思う。
0575nobodyさん
2009/02/02(月) 22:34:43ID:???var $hasMany = array('Profile1' =>
array('className' => 'Profile',
'foreignKey' => 'user_id',
),
'Profile2' =>
array('className' => 'Profile',
'foreignKey' => 'user_id',
)
);
0577nobodyさん
2009/02/03(火) 09:54:32ID:???一つのモデルで複数のフィールドの
データを操作するのって、どうやるの?
というか、そういうのは奨められない?
あるフィールドにデータが書き込まれたら、
同時に別のフィールドにもデータを書き込みたい。
(DBの設計がそもそも冗長との批判は分かる。)
0579nobodyさん
2009/02/04(水) 16:42:15ID:???この配列の先頭に、例えば、
$sel[0]='ここから選んで';
みたいなのを追加するのって、どうする?
array_unshiftだと、IDに当る数字が再割り付けされてしまう。
0580nobodyさん
2009/02/04(水) 17:30:08ID:???配列に直にデータを入れてバリデーションと合わせて簡単にやれないかを検討する
0581nobodyさん
2009/02/04(水) 18:18:31ID:???$form->input('sel_id')
の説明が無いんだよなー。
$form->selectにもなさげ。
配列に直にデータ入れて、ksortでできたからいいか。
0582nobodyさん
2009/02/04(水) 18:39:48ID:???$form->select()だと第5引数showEmptyに文字列指定
調べてないけどinputもいけるはず
0583nobodyさん
2009/02/04(水) 19:26:25ID:???そうだよなー。素人の私でも、出来ないと不便だって思うもんなー。
0584nobodyさん
2009/02/04(水) 23:27:52ID:???せっかくCakeは日本語ドキュメントが充実してるんだから。
0585nobodyさん
2009/02/05(木) 00:17:23ID:???これだけでもCakePHPを選んで良かったと思う。
だけど、紙の本で探す方が早い事も多いし、狭い画面でやってるのでwebマニュアル
を開いてる場所が無いのです。
ポケリファの1.2.1対応した改訂版が早く出て欲しい。できれば、Authとか1.2の
新機能をきっちり説明して欲しい。
0586nobodyさん
2009/02/05(木) 00:26:39ID:???逆引き的なのは欲しいなぁ〜
0587582
2009/02/05(木) 09:29:26ID:???まずマニュアル見ようというのは同意だけど、マニュアルの記述がまだまだ不完全なのは事実
今回の件であれば
select(string $fieldName, array $options, mixed $selected, array $attributes, boolean $showEmpty)
空の選択オプションを表示したくない場合、$showEmpty を false にします。
と、ある
boolean の引数にテキストを指定するなんて、http://api.cakephp.org/ でソースを見るしかない
(今回はポケットリファレンス見たというから、つっこんだまで)
0588nobodyさん
2009/02/05(木) 09:35:20ID:???付け加えると、詰まったら http://api.cakephp.org/class/form-helper#method-FormHelperselect を見るのが、一番手っ取り早い
こっちは、マニュアルよりは更新早いし、最終的にはソースを追えるし
まあ、がんばってくれ
0589nobodyさん
2009/02/05(木) 17:58:21ID:???どうすればいいの?
0590nobodyさん
2009/02/05(木) 18:28:27ID:???1.2だったら
$this->MODELNAME->find('all',
array(
'conditions'=>array(
'MODELNAME.price' => '2000',
'MODELNAME.item' => 'ITEM')
)
);
こんな感じ
0591nobodyさん
2009/02/05(木) 18:29:43ID:???ありがとう!
その前にMYSQLが日本語ひっかからないという。。。
なんでだろ。
参考になりました。ありがとうございます。
0592589
2009/02/05(木) 18:34:16ID:???$option = array('Faqlist.name LIKE BINARY' => $str);
ってBINARY ってのをつけると 日本語もうまくひっかかるようになります。
今まではちゃんとひっかかってたのに。MYSQLの仕様がかわったのかなー
0594nobodyさん
2009/02/05(木) 18:55:11ID:???0595nobodyさん
2009/02/06(金) 03:00:32ID:???idが空になれば新規保存されるのかな?と思って、
モデルに
function beforeSave() {
unset ($this->data[$this->name]['id']);
return true;
}
と書いてみたが、UPDATEされてしまった。
かといって、
function beforeSave() {
$d = $this->data;
unset ($d[$this->name]['id']);
$this->create();
$this->set($d);
return true;
}
ってしたら、createdの日付が0になってしまった。
何か良い方法無い?
0596nobodyさん
2009/02/06(金) 08:05:18ID:OIEK7Rhk0597nobodyさん
2009/02/06(金) 09:38:20ID:???どのように複製したいのだろうか?
updateだろうがinsertだろうが、同じデータをinsertするということなら
afterSaveで、create後saveすれば良いと思われ
別のDBに保存したいというのならuseDbConfigを変更してsaveかな?
いずれにせよafterSaveじゃないと、validationErrorのときにもsaveされちゃうんじゃないかな
0598nobodyさん
2009/02/06(金) 10:28:16ID:???複製って表現が違ったかもしれん。すまん
「バックアップを残す」って感じ。
既存のデータの編集の際、既存のデータは
そのまま(削除のフラグを立てる)で、
新しいidで保存したい。
すると、afterSaveでは上書きされた後だから
ダメでしょ? そこで、beforeSaveでidを
空にすれば新しいidで保存されるかなと思ったが、
なぜか上書きされてしまった(前者)。
コピーしたデータで書き込んだら、createの
情報が抜けてしまった(後者)。という次第であります。
0599nobodyさん
2009/02/06(金) 10:42:52ID:???履歴を残すってことね。理解した。
でも、それでもafterSaveだろう
新規のデータをinsertして、afterSaveで既存のデータをupdateする感じじゃないかな
http://book.cakephp.org/ja/view/76/
beforeSaveはあくまで保存するデータをいじったりするときに使うものだと思うよ
※>>597のvalidationErrorのときにもsaveされるは間違いのようだ
0600nobodyさん
2009/02/06(金) 10:53:08ID:???>新規のデータをinsertして、afterSaveで既存のデータをupdateする
↑
この処理はコントローラに書くことになるよね?
どこかで、「ビジネスロジックはモデルに」なんて書いてあったので、
モデルに書く方法を考えてた。(コントローラからは普通にsaveしてる
ように見えるけど、モデルの方でバックアップを残してる、って感じ)
もしくは、モデルに上記の処理をするメソッドを作る方法もある?
Model::save()を上書きしたら・・・さすがにややこしいことになるよな。
0601nobodyさん
2009/02/06(金) 11:04:42ID:???afterSaveと言ってるくらいだから、Modelでしょーが
おまいさんのいうように、自動的に履歴が残るぞ。
まずは、マニュアル読んでコールバックメソッドを理解するべし
0602nobodyさん
2009/02/06(金) 11:08:14ID:???0604nobodyさん
2009/02/06(金) 12:54:05ID:???「新規のデータをinsertして」もModel??
その後、afterSaveの中でgetIDできるのは
新しい方のデータで、既存のデータのidは
取得できないのでは?
0605nobodyさん
2009/02/06(金) 12:58:50ID:Fuxx6e9Yモデルに追加するだけで動作するよね?
var $validate = array(
'xxx' => array(
'rule' => VALID_NOT_EMPTY,
'message' => '必須項目です。'
)
0606nobodyさん
2009/02/06(金) 13:12:45ID:???それは、Controller
既存のidについては、自分で工夫してみてくれ。getIDする必要があるとは思えんから
0607nobodyさん
2009/02/06(金) 13:51:55ID:???ありがとう。わかりました。
いくつかのモデルで同様の処理が有るので、
メソッド作って、AppModelに書いてみました。
0608nobodyさん
2009/02/06(金) 14:27:27ID:???自分で処理するしかないですあk?
0609nobodyさん
2009/02/06(金) 14:49:58ID:???自分で意識する必要はある。当然だが。
0611nobodyさん
2009/02/06(金) 16:17:31ID:???0612nobodyさん
2009/02/06(金) 16:32:25ID:???0613nobodyさん
2009/02/06(金) 16:44:06ID:???0614nobodyさん
2009/02/06(金) 22:15:58ID:OIEK7RhkBEGINでトランザクション開始
SELECT FOR UPDATEで更新用データ取得と同時にロック
UPDATEでデータ更新
COMMITでトランザクション終了
みたいな感じにしたいんだけど、SELECT FOR UPDATEって
どうやって設定してやったらいいんだ?
0615nobodyさん
2009/02/07(土) 09:27:29ID:u7AiZVmn表示したいのですが、
includeでコントローラが読めませんでした。
viewにすれば解決するのはわかるのですが、
外部からcakeの結果を受けとることって無理なんですかね?
0616nobodyさん
2009/02/07(土) 10:22:18ID:???(今考えている解決方法がどうやったらできるかじゃなくて)
具体的に今抱えている問題を書き込んだほうが、解決につながりやすいと思うよ
webrootにphpファイルを置くというのは、方向性が間違っている可能性が高い
0617nobodyさん
2009/02/07(土) 18:26:40ID:???条件としてはどちらもバリデーション通ったら保存。
バリデーションチェックとその表示との両立が上手くできない。
0618nobodyさん
2009/02/07(土) 18:37:09ID:???'validate' => 'first' でsaveAll()
http://book.cakephp.org/ja/view/75/%E3%83%87%E3%83%BC%E3%82%BF%E3%82%92%E4%BF%9D%E5%AD%98%E3%81%99%E3%82%8B
0619nobodyさん
2009/02/07(土) 19:28:59ID:???明確な答えをありがとう。
フォームのバリデーションエラー表示も少してこずりましたが試して見ます。
saveAllをネット上の情報で試したんですが、エラー表示がきちんと出なかったんですよね。
フォームヘルパーの指定方法の問題じゃないかと思っていましたが。
taskモデルと、アソシエーションしたTimelineモデル(hasMany)のフォームはこんな感じで書いてます。
echo $form->input('task');
echo $form->input('Timeline.progress');
ちょっと前見たときはsaveAllの説明なかった気がするのは気のせいかな・・。
履歴を見ると気のせいじゃない気もする、今月に入って誰か訳してくれたんだねありがとう訳者さん。
0620nobodyさん
2009/02/07(土) 23:38:50ID:K4fXwaLQUser自身が書いたPostのみ編集できて、他人のPostは編集できないようにしたいのですが、
どうしたらいいのかわかりません。><
isAuthorized()とかbeforeFilter()になんかちまちま書くしかないんでしょうか?
例えば、ACL使ってないけど、
function isAuthorized() {
if ($this->Auth->user('username') == 'admin') {
return true;
}
if (!empty($this->params['pass'][0])){ // ユーザー名
if ($this->Auth->user('username') != $this->params['pass'][0]) {
return false;
}
}
return true;
}
こんな感じとか?
0621nobodyさん
2009/02/07(土) 23:48:49ID:???0622nobodyさん
2009/02/08(日) 00:16:52ID:XBcxfvCP「マニュアル/開発例/ACL〜」のサンプルで
id:1のUserのみがuser_id:1のPostを編集できるようにできるんですか?
0623nobodyさん
2009/02/08(日) 01:12:57ID:???「TRPGオタしか喜ばなそうな上記説明を熟読すれば、」ってことは、
ちゃんと読んでないのか。
マニュアルくらい読めよw
それとも読めないくらい馬鹿なの?ww
もしそうだったらごめんねwww
0625nobodyさん
2009/02/08(日) 02:30:48ID:???1行に並べるのって、どうするの?
0628nobodyさん
2009/02/08(日) 11:29:47ID:XBcxfvCPこれだとテーブル単位では大丈夫だけど、レコード単位での権限の設定が
できないんじゃないかと思うんだが、違うのか?
なんか、ここはレベル低いなぁ。
0629nobodyさん
2009/02/08(日) 11:49:57ID:???自分が投稿したやつだけ編集できるって。
当たり前だろ。
管理者は全員のものを編集できるかもしれないし、
別に編集者という人を作るかもしれない。
誰が何を編集できるかを決めるのはお前。
よってお前がそういうコードを書く。OK?
レベルが低いのはお前。
0630nobodyさん
2009/02/08(日) 12:03:59ID:???tableタグ使うと$form->text()を1行に並べること出来るよ。
後は、app/webroot/css/cake.generic.cssの内容を自分の好みに編集するだな。
(でも、なんでCakePHP1.2のdefaultのcssはこんなに変態なのだろ?)
0631nobodyさん
2009/02/08(日) 12:10:49ID:???> (でも、なんでCakePHP1.2のdefaultのcssはこんなに変態なのだろ?)
同意。デフォルトのフォントの大きさとかマージンとか
各ブラウザの間での違いを吸収する程度にしておけばいいのに。
0632nobodyさん
2009/02/08(日) 12:17:33ID:XBcxfvCP> その処理は、自分で書くんだよ。
いや、書かなきゃならないのは、最初からわかってるよ。
でも、どこに書けばいいのかがわからない。
isAuthorized()やbeforeFilter()に書くのか?
0633nobodyさん
2009/02/08(日) 12:21:23ID:???Summary: "cake.generic.css" looks like hentai
Type: RFC
0635nobodyさん
2009/02/08(日) 13:06:23ID:???<?php
echo $form->text('hoge0', array('div' => 'false'));
echo $form->text('hoge1', array('div' => 'false'));
echo $form->text('hoge2', array('div' => 'false'));
?>
これでは縦に3つ並んでしまったが、こんな書き方ではないのかな??
0637622
2009/02/08(日) 13:32:48ID:ByGZ6/FB教えてやるから土下座して「自分の頭の程度が悪うございました」とPCの前で言え
単にACOにmodel,foreign_keyを目的のレコードのものに設定して登録して、
AROとACOの関係を定義するだけ
ACO登録位置は種類考えて適宜選べ
関係の定義とチェック関数については>>622に書かれてる
0638621
2009/02/08(日) 13:33:26ID:ByGZ6/FB0639nobodyさん
2009/02/08(日) 14:40:18ID:???0645nobodyさん
2009/02/08(日) 16:20:11ID:???0646nobodyさん
2009/02/08(日) 16:26:13ID:SHT1by4H複数のルールを設定していた場合に、
一つのエラーが検知した場合以降の
バリデーションはおこわないことは、出来ますか?
例えば、期間の入力があった場合、入力値が正しく
なかった場合、その後の妥当な期間であるかどうかの
チェックはいらないのですが。
0647nobodyさん
2009/02/08(日) 16:41:27ID:???これから始めるなら、この本お勧め。
「CakePHP徹底入門」 CakePHP1.2で説明してあるから、とても楽に入門できた。
ttp://www.amazon.co.jp/CakePHP徹底入門-イージーゲート/dp/479811717X
↓このページも入門者にお勧めかな。
ttp://kuri6005.sakura.ne.jp/cake/wiki/
0648nobodyさん
2009/02/08(日) 16:53:37ID:???http://book.cakephp.org/ja/view/133/
'last' => true
0649nobodyさん
2009/02/08(日) 17:20:04ID:???ありがとうございます。
すみません。
しっかりと説明されていますね。
もっとちゃんと読まないといけませんね。
0650nobodyさん
2009/02/08(日) 17:46:55ID:srWubjja表示はうまくできたんですけど、PC用ページのフォームで、
$form->create('post', array('action' => 'view'));
ってやったときに、$this->dataにデータが入っているときは、
action="/post/view/1"とかになるんだけど、データが入ってないと
action="/m/post/view"って/m/が先頭につけられてしまいます。
プログラム中で/m/をつけてるのはroutes.phpで
Router::connect('/m/:controller/:action/*", array('prefix' => 'mobile'));
としているとこだけなんだけど、$form->createってここを見てURLを
自動生成してるんでしょうか?
だとしたらどうやったらうまく解決できるんでしょうか?
0651nobodyさん
2009/02/08(日) 18:01:22ID:srWubjjaということは$form->createではこれをみてURLを生成してるんですね。
携帯、PCの両用サイト作ってる人はどうやって解決してるんでしょうか?
0653nobodyさん
2009/02/08(日) 21:59:25ID:???0654nobodyさん
2009/02/08(日) 22:39:55ID:???うちもそれ試した。3行になっちゃった。
やっぱ、>626の言う通り、自分で
フォームを書かないといけないのか・・・マンドクセ
生年月日を入力させるのに、セレクトメニューでは
不便なので、直接「年」「月」「日」の数字を
入力させたいのね。
何か、簡単な方法ある?
できれば、年号(MTSH)が付いてると西暦に直して
欲しいんだけど・・・(そこまで求めるのは無理か。)
0655nobodyさん
2009/02/08(日) 22:49:40ID:???0656nobodyさん
2009/02/08(日) 23:14:43ID:???'div' => false にして、出てくるフォームが改行されるのは、FormHelperの問題と違う。
CSSでそう指定してあるから改行される。
input {
clear: both;
}
みたいな感じで。
いっぺん、読み込んでるCSSファイルを移動するなりして、読み込めないようにしてみろ。
0657nobodyさん
2009/02/09(月) 00:07:57ID:???CakePHP1.2の変態cssをとっぱらったら、'div' => 'false'を付けなくてもtextBoxが1行に
ちゃんと3つ並ぶ。質問者はCakePHP1.2の変態cssを突破してtextBoxを1行に並べる方法を
質問しているのだと思う。
<?php
echo $form->text('hoge0');
echo $form->text('hoge1');
echo $form->text('hoge2');
?>
<br>
<br>
<?php
echo $form->text('hoge0', array('div' => 'false'));
echo $form->text('hoge1', array('div' => 'false'));
echo $form->text('hoge2', array('div' => 'false'));
?>
>>654
自分でフォームを直接書いたとしても、CakePHP1.2の変態cssの壁に阻まれると思う。
敵はCakePHP1.2の変態cssだと思う。変態cssを攻略するのが近道。
tableタグを使うと変態cssの中でもtextBoxを1行で表示できる。が詳細なレイアウトを
調整しようとすると変態cssと戦わざるを得ない。
<table>
<tr>
<td><?php echo $form->text('hoge0'); ?></td>
<td><?php echo $form->text('hoge1'); ?></td>
<td><?php echo $form->text('hoge2'); ?></td>
</tr>
</table>
0658nobodyさん
2009/02/09(月) 00:13:00ID:???無駄な労力使ってるんだw
0660nobodyさん
2009/02/09(月) 01:19:15ID:???0663nobodyさん
2009/02/09(月) 20:24:53ID:???0665nobodyさん
2009/02/09(月) 20:53:38ID:???0666nobodyさん
2009/02/09(月) 20:59:41ID:???0667nobodyさん
2009/02/09(月) 21:42:25ID:???0668nobodyさん
2009/02/09(月) 21:47:42ID:???0669nobodyさん
2009/02/09(月) 21:50:22ID:???0670nobodyさん
2009/02/09(月) 21:52:08ID:???0671nobodyさん
2009/02/09(月) 21:54:10ID:???完璧に一般的な機能のみしかも小機能だったら30万くらいでも作るが
0672nobodyさん
2009/02/09(月) 22:00:02ID:???ttp://www.with9.com/
このレベル
0673nobodyさん
2009/02/09(月) 22:04:10ID:???それ以下で請け負う奴もたぶん居ないし
0674nobodyさん
2009/02/09(月) 22:04:53ID:???0675nobodyさん
2009/02/09(月) 22:07:07ID:???売り手市場のIT業界でそんなの15以下で受ける奴は学生で居るかどうかってところ
0676nobodyさん
2009/02/09(月) 22:14:58ID:???0677nobodyさん
2009/02/09(月) 22:18:20ID:???0678nobodyさん
2009/02/09(月) 22:24:51ID:???お前は何を言ってんだ
ここ見てみろ
ttp://www.getafreelancer.com/projects/PHP/Flickr-clone.html
0679nobodyさん
2009/02/09(月) 22:25:37ID:???0680nobodyさん
2009/02/09(月) 22:28:45ID:???メンテに人件費がかかりすぎてるのかね
0681nobodyさん
2009/02/09(月) 22:30:45ID:???cloneインストールするだけじゃないだろうなw
0682nobodyさん
2009/02/09(月) 22:54:07ID:???スキルを磨かせてもらえ、今後のチャンスを与えてくれる様な仕事なら
ゼロ円でやらせてもらいます。よろしくお願いします。
0683nobodyさん
2009/02/09(月) 22:55:04ID:???よろしくお願いします。
0684661
2009/02/09(月) 23:14:55ID:???ボランティアで^^
0685nobodyさん
2009/02/09(月) 23:30:16ID:???cakephp の設置は1つのままで、稼動用、テスト用のデータベースへの接続を
ファイルをかきかえる事なく自由にやる事ってなんかいい方法ないですかね?
ブラウザであるアドレスにアクセスすると、データベースをこっちみてくれる、とか
そんなんできないですかね?
ページが探せないんですけど、なんかすると debug の値を変更してアクセスできる
みたいな tips をどっかで見た記憶があるんですけど、そういう勢いで…。
0686nobodyさん
2009/02/09(月) 23:34:21ID:???0687nobodyさん
2009/02/09(月) 23:40:42ID:???どういう意味?
2つファイルを置いてリネームして使えってこと??
そうじゃなくて、通常にアクセスすると稼動用DB を見にいってるけど
なんか URL などにある細工をするとテスト用DB を見にいく、
みたいに設定ファイルをいじる事なくやりたいんすが。
0689nobodyさん
2009/02/10(火) 01:05:58ID:???と
/unyo/app
って二カ所に同じものをコピーしてDBの設定だけ変えときゃいいんじゃねーの?
どうせテスト用のは一時的にソースいじったりするんだべ?
だったら運用とテストは別ディレクトリに分けといた方がいいんでないかい?
0691nobodyさん
2009/02/10(火) 01:53:54ID:???で よくね?
0692nobodyさん
2009/02/10(火) 02:21:12ID:???知った時は割とショック。
0693nobodyさん
2009/02/10(火) 08:56:22ID:???app/webroot/css/cake.generic.css
を直接書き替えればいいのかな?
何かお勧めの設定ありますか?
0694nobodyさん
2009/02/10(火) 09:58:52ID:???ttp://d.hatena.ne.jp/charly24/20070512/1178956046
debugの値じゃないけど、これも、設定変更が不要なパターンで使い勝手が良い
>>689のように別ディレクトリでも同じファイルでよいから、ミスが少ない
0695nobodyさん
2009/02/10(火) 12:33:26ID:???うまく作らないとviewがぐちゃぐちゃになる。
0696nobodyさん
2009/02/10(火) 18:10:04ID:???俺そんなかんじで、appを分けてテスト用の方で機能追加したりしてたんだけど、
機能追加分がやっとできたー。と思って、本番用のappからテスト用のappにコピーしちゃった。
そして気づかずに速攻でリモート鯖にアップしちゃった。
機能追加した分が全部パーじゃねえか!・・・・
まあ俺用サイトの管理画面の手直しだからまだ救われるけど、
バージョン管理とか導入した方がいいのかもしれんなあ。とほほ。
0697nobodyさん
2009/02/10(火) 18:21:35ID:???0698nobodyさん
2009/02/10(火) 20:35:04ID:???本番用はチェックアウトするだけってするのが
ミスもなくなってらくちんですよね
0699nobodyさん
2009/02/10(火) 22:01:09ID:???0700nobodyさん
2009/02/10(火) 22:06:53ID:???SVNって便利なの?どうやって使うの?
自動で差分を管理してくれたら、楽だろうなとは思う。
>>699
./cake bake all
が便利だったので、もういいか、って思う。
でも、bake allって焼き直す時に確認が多すぎてウンザリ。
0701nobodyさん
2009/02/10(火) 22:09:54ID:???今後、食っていけるかどうか不安で一杯なのに
「ボランティア」なんて心の余裕はない。勘弁してください。
0703nobodyさん
2009/02/10(火) 23:15:30ID:???自動でバージョン間の差分出すとか、
当たり前というか出来なかったらバージョン管理ツールと呼べないw
個人で使うならSVNがお勧めだな
0704nobodyさん
2009/02/10(火) 23:33:37ID:???良さげなんで、メモ
http://jeffhowden.com/code/css/forms/
0705nobodyさん
2009/02/11(水) 13:25:54ID:???0706nobodyさん
2009/02/12(木) 03:37:49ID:???外に見せる部分にもcake.genericとか使っちゃうの?
0708nobodyさん
2009/02/12(木) 12:04:09ID:???乙!
0709nobodyさん
2009/02/12(木) 12:34:16ID:???0710nobodyさん
2009/02/12(木) 16:27:26ID:???0711nobodyさん
2009/02/12(木) 16:41:01ID:???formヘルパーの拡張、誰か作ってくれ。いや、ください。
というか、formヘルパーの拡張って、どこですんの?
0712nobodyさん
2009/02/12(木) 16:42:20ID:???2つのフィールドじゃない。3つのフィールドだ。
0713nobodyさん
2009/02/12(木) 16:49:22ID:???何をどう拡張して欲しいか、まったく分からんのだが
selectじゃなくてinputってこと?
独自のHelper作ればよろしいがな
0714nobodyさん
2009/02/12(木) 19:58:05ID:???ログイン画面を、管理者用と一般用に分けたくなりました。
そこで、管理者用にmodelが空のkanris_controllerを作って
$this->Auth->loginAction = '/kanris/login';
として管理者用ログインのviewを表示させたのですが、
うまくログインできません。
方法として間違ってるのでしょうか?
なにかヒントがあれば、教えて頂けませんでしょうか。
0715nobodyさん
2009/02/12(木) 20:41:26ID:???0717nobodyさん
2009/02/13(金) 02:26:21ID:???この変換してくれる関数とか、ありませんか?
0718nobodyさん
2009/02/13(金) 03:05:24ID:???【PHP】下らねぇ質問はID出して書き込みやがれ 80
http://pc11.2ch.net/test/read.cgi/php/1233479457/
0721nobodyさん
2009/02/13(金) 03:52:15ID:???<?php
class DateFormHelper extends AppHelper {
function input($title = null, $model = null, $field = null, $value = null) {
$class = "dateForm";
$name = "data[".$model."][".$field."]";
$txt = "\r";
$txt .= "<div class=\"input text\">";
$txt .= "<label for=\"".$model.Inflector::camelize($field)."\">".$title."</label>";
$txt .= "<input class=\"".$class."\" name=\"".$name."[year]\" type=\"text\" maxlength=\"10\" value=\"1970\" />";
$txt .= "年";
$txt .= "<input class=\"".$class."\" name=\"".$name."[month]\" type=\"text\" maxlength=\"10\" value=\"1\" />";
$txt .= "月";
$txt .= "<input class=\"".$class."\" name=\"".$name."[day]\" type=\"text\" maxlength=\"10\" value=\"1\" />";
$txt .= "日";
$txt .= "</div>\r";
return $this->output($txt);
}
}
?>
だが、引数が多すぎる・・・
Helperの中で、引数をどこからか取得できない?
0723nobodyさん
2009/02/13(金) 08:30:00ID:???0724nobodyさん
2009/02/13(金) 11:24:30ID:???HtmlHelperってobsolate? 意外に面倒? って思って、
直接書いちゃった。
引数に当るものは、$this->params, $this->dataで
普通に取れた。
0725nobodyさん
2009/02/13(金) 12:32:00ID:???$this->Form->inputに渡しなさいってことよ
http://book.cakephp.org/ja/view/102/
0726馬鹿
2009/02/13(金) 15:25:23ID:???>>637
ACOにmodelとforeign_keyを入れると、
たしかにcheck()で判定できました。
例えば、
$aro = array("model"=>"User", "foreign_key"=>1);
$aco = array("model"=>"Post", "foreign_key"=>3);
$this->Acl->check($aro, $aco, 'read')
みたいな感じでですよね。
ですが、Authと組み合わせても、
ACOのforeign_keyがまったく影響されません。
0727馬鹿
2009/02/13(金) 15:26:41ID:???id:3のPostの内容が表示されてしまいます。
SELECT `Aco`.`id` , `Aco`.`parent_id` , `Aco`.`model` , `Aco`.`foreign_key` , `Aco`.`alias`
FROM `acos` AS `Aco`
LEFT JOIN `acos` AS `Aco0` ON ( `Aco0`.`alias` = 'Posts' )
WHERE `Aco`.`lft` <= `Aco0`.`lft`
AND `Aco`.`rght` >= `Aco0`.`rght`
ORDER BY `Aco`.`lft` DESC
LIMIT 0 , 30
# というか、なんでaliasで探しているんだ?
なんとかならないでしょうか?
ちなみに、beforeFilter()の中はこんな感じです。
function beforeFilter(){
$this->Auth->authorize = 'crud';
$this->Auth->authenticate = $this->NoHash;
$this->Auth->loginAction = array('controller' => 'users', 'action' => 'login');
$this->Auth->logoutRedirect = array('controller' => 'users', 'action' => 'login');
$this->Auth->mapActions(
array(
'create' => 'add',
'read' => 'view',
'update' => 'edit',
'delete' => 'delete'
)
);
$this->set('auth', $this->Auth->user());
}
0728馬鹿
2009/02/13(金) 15:47:24ID:???User の情報には、単独の Model::find() の実行結果が(もしアソシエーションが正しく定義されていれば、それも)含まれます。
逆に、ある特定のブログの投稿やレシピの表などを編集する作業を管理したい場合は、これらのモデルのレコードを ACO にリンクさせます。
とあるんですが、これって、
class User extends AppModel{
var $actsAs = array('Acl'=>array('requester', 'controlled'));
}
であれば、Userに所属するPostも同様に扱われる、と解釈していいのでしょうか。>Model::find()の実行結果が含まれます。
0729nobodyさん
2009/02/13(金) 15:57:43ID:???渡したいのは山々だが。うまいやり方が分からん。
特に、3つのinputを、一つの<div>に括るのが。
ちなみに、>721だと、cssに
form .dateForm {
width: 45px;
}
を追加すると、それぞれの数字の入力場所が小さくなって、
他のcssとの設定もあって、年/月/日の3つの入力場所が
1行に収まるのですよ。
0730馬鹿
2009/02/13(金) 16:02:04ID:???> なんか、ここはレベル低いなぁ。
と言ったのは、例えば1つ上で、
> formヘルパーで、複数のテキスト入力boxを
> 1行に並べるのって、どうするの?
なんて質問している人がいるからだったんだが、
正直、すまんかった。
ちょっと苛ってた。
0732nobodyさん
2009/02/13(金) 17:12:28ID:???0733nobodyさん
2009/02/13(金) 17:28:54ID:???0734nobodyさん
2009/02/13(金) 18:32:32ID:???check()でfalseが返るならそれを判定して好きなようにエラー処理でもしろよ
まとめてやりたいならcontroller,actionを全部ACO扱いにしてapp_controllerのbeforeFilterあたりで好きにやれ
0735馬鹿
2009/02/13(金) 20:38:17ID:???> check()でfalseが返るならそれを判定して好きなようにエラー処理でもしろよ
> まとめてやりたいならcontroller,actionを全部ACO扱いにしてapp_controllerのbeforeFilterあたりで好きにやれ
うーん、そうするしかないのかな。
開発例だとACOがテーブル+アクション単位だからする必要がなくて、
ACOをレコード単位(モデル名と外部キー指定)で権限設定した途端になにか書かなければならない、
というのは変だと思うんだが…。
まぁ、aliasの使い方がまだ良く分かっていない。
というか、仕様が固まってなさ過ぎるんじゃないか、とさえ思った。
そもそも、GoogleしてもACOのmodelとforeign_keyに値を入れる人があまりいないんだよなぁ。
あと、こんな議論してたり…。
ttp://groups.google.ch/group/cake-php/msg/8d20dc14a91402c3
でも、実際にやってみて勉強になったし、感謝してる。
ありがとう。
0736nobodyさん
2009/02/13(金) 22:19:37ID:???0737nobodyさん
2009/02/13(金) 22:26:38ID:???どうすればいいですか?
1つのモデルの中で、
過去の一覧、今日日付の一覧、未来日付の一覧のように
3つのテーブルを表示して、それぞれに paginator をつけたいんですが、
コントローラ変数 $paginateの定義をどうやって複数にすればいいか
わからなくて…。
0738nobodyさん
2009/02/13(金) 23:20:28ID:???$this->data['User']['birth_day'] = "1960-02-13" の様なデータを
どうやって$this->Form->inputに渡すか、ずっと考えてた。
$this->data['User']['birth_day']['year'] = "1960"
$this->data['User']['birth_day']['month'] = "02"
$this->data['User']['birth_day']['day'] = "13"
というデータを作って、
$form->text('User.birth_day.year', array('class' => 'dateForm'))
$form->text('User.birth_day.month', array('class' => 'dateForm'))
$form->text('User.birth_day.day', array('class' => 'dateForm'))
で、いいのか??
0739nobodyさん
2009/02/14(土) 15:13:33ID:???やっつけ
class FormHogeHelper extends FormHelper {
function dateText( $fieldName, $options = array( ), $separator = array( '年', '月', '日') ) {
// year
$opts = array(
'class' => 'input date year text',
'maxlength' => '4',
);
$options = am( $opts, $options );
$ret .= parent::text( $fieldName . 'year', $options );
$ret .= $separator[0];
// month
$options['class'] = 'input date month text';
$options['maxlength'] = 2;
$ret .= parent::text( $fieldName . 'month', $options );
$ret .= $separator[1];
// day
$options['class'] = 'input date day text';
$ret .= parent::text( $fieldName . 'day', $options );
$ret .= $separator[2];
return $ret;
}
}
0740nobodyさん
2009/02/14(土) 19:24:44ID:m6dznHMB俺ならPEARのPagerで実装しちゃうかも…それ。
いい方法が思いつかない。
ところで、皆様ビュー作るときのデザインってどうしてる?
デザイン周りはDreamweaver、ロジックはeclipseで書いてるんだけど、
ctpに落とし込むとめんどくさいのだよね。Htmlヘルパーで画像差込すると
デザインプレビューできないし。
0742nobodyさん
2009/02/14(土) 22:11:23ID:???cakeの機能でやりたいんだよなー
なんとなく。
でもPEARのPagerなら可能なんだね。
いいこと聞いたわ
0744nobodyさん
2009/02/15(日) 00:08:56ID:???model内で、paginateCount()とpaginate()の一番めの引数にsqlを渡せるようにしとく。
controller内にsql書くのはアレなので、sql取得用のメソッドも書いとく。
controller内で
$this->paginate = array(
'conditions' => $this->Model->getSql( '過去'),
'limit' => $limit,
);
$this->set( 過去の一覧, $this->paginate( 'Model' ) );
$this->paginate = array(
'conditions' => $this->Model->getSql( '今日'),
'limit' => $limit,
);
$this->set( 今日日付の一覧, $this->paginate( 'Model' ) );
$this->paginate = array(
'conditions' => $this->Model->getSql( '未来'),
'limit' => $limit,
);
$this->set( 未来日付の一覧, $this->paginate( 'Model' ) );
0745nobodyさん
2009/02/15(日) 05:16:04ID:???おかげで、タグが無くなり、可読性が上がりました。
'1960-02-13'を、年、月、日に分ける処理は必要でした。
0746nobodyさん
2009/02/15(日) 11:18:12ID:???AppControllerでsetするしかないの?
個別のコントローラでsetしたら未定義エラーになった。
0747nobodyさん
2009/02/15(日) 11:59:08ID:???飲み会明けで、思考力が落ちてるわ。
0748nobodyさん
2009/02/15(日) 18:54:59ID:???Openidを使うためにOpenidコンポーネントを使おうとしています。
で、バックエンドをMySQLから変更したいんだけど(Postgres使いたい)、
/components/openid.php の
getMySQLStore周辺をゴニョゴニョ弄っても認証が通らないです。
具体的には
$db = DB::connect($dsn);で接続は出来てるんだけど、
その後の処理の中でnonceとかassociationがDBに入っていかない
→認証の戻りでエラー(OpenID verification failed: Server denied check_authentication)
(バックエンドをファイルベースに変えると
認証用のファイルが作成されて、認証も通ることは確認した)
OpenidコンポーネントでバックエンドをMySQLから変える方法って
どこかに資料とか無いでしょうか……。
0752748
2009/02/15(日) 23:56:08ID:???Auth/OpenIDのMySQLとPostgresqlで
データの持ち方が何か違うくさい箇所があって、
嫌な予感はしてたのよー。
……とりあえず放置w
(この先はもう気力が持たない)
0753nobodyさん
2009/02/16(月) 12:30:03ID:???> ところで、皆様ビュー作るときのデザインってどうしてる?
> デザイン周りはDreamweaver、ロジックはeclipseで書いてるんだけど、
> ctpに落とし込むとめんどくさいのだよね。Htmlヘルパーで画像差込すると
> デザインプレビューできないし。
つ ttp://www.studio-kingdom.com/cakephp/48
.thtmの説明ですが、.ctpも一緒に追加すれば使えます
0754nobodyさん
2009/02/16(月) 12:54:51ID:???すっごい時間がかかりそうな処理をする時に、
プログレスバーみたいな物って、どうしてる?
出してる?
待ち時間を計るって意味もあるけど、
出さないとtimeoutしそうな心配。
0755nobodyさん
2009/02/16(月) 15:05:29ID:???CakePHP Test Suite v 1.2.0.0の画面は出て
自作のテストも動くんだけど、
simpletestディレクトリの中にあるファイルの使い方がわからない。
ドキュメント見ると「tests/all_tests.php」に書け的なことが書いてあるけど、
そこに置いても適当に動かしても認識されない。
なんか便利そうなんだけどなぁ。>simpletest
0756nobodyさん
2009/02/16(月) 18:43:48ID:???0759nobodyさん
2009/02/16(月) 21:54:17ID:???つ http://book.cakephp.org/ja/view/18/
0760nobodyさん
2009/02/16(月) 21:58:13ID:???>739で教えて頂いたのはFormHelperの拡張だったけど、
同じ機能を、
class DateFormHelper extends AppHelper {
var $helpers = array('Form');
でもほぼ同じで実現できる。できるんだけど・・・
FormHelperの拡張の方がいいのか?
FormHelperを読込む方がいいのか?
パフォーマンスに違いって出る??
0762nobodyさん
2009/02/16(月) 22:24:43ID:???0764nobodyさん
2009/02/17(火) 00:34:45ID:???あんた天才。
email や name っていうよく使う奴だったら validation behaviour を作って、
それにまとめてかいて actas で読み込むってことか。
ナイス、アイデア!
0765nobodyさん
2009/02/17(火) 06:29:15ID:???最近のフレームワークはみんな、バリデーションをモデルに書くものなのかな?
0766nobodyさん
2009/02/17(火) 09:56:53ID:???何のためのapp_modelだと思っているのだ、キミは。
>>763-764
複数のappで共有するためにbehaviorを使うということかな?
具体的にどうするんだろうか?
setupで、$model->validateを書き換え、ってことかな?それとも、beforeSaveを利用するの?
0767nobodyさん
2009/02/17(火) 10:00:17ID:???0768nobodyさん
2009/02/17(火) 17:55:44ID:???それともURLパラメータにセットすべきなの?
0770nobodyさん
2009/02/17(火) 21:53:41ID:???0771560
2009/02/18(水) 10:11:30ID:???0772nobodyさん
2009/02/18(水) 10:25:52ID:???つ http://pc11.2ch.net/test/read.cgi/php/1229960175/
0773nobodyさん
2009/02/18(水) 12:03:42ID:???0774nobodyさん
2009/02/18(水) 16:57:38ID:???フォームのname属性見るだけで
データベースのスキーマが手に取るようにわかっちゃうのがなんか嫌。
0775nobodyさん
2009/02/18(水) 17:04:35ID:???0776nobodyさん
2009/02/18(水) 19:23:15ID:???0777nobodyさん
2009/02/18(水) 19:27:16ID:???もともとスキーマが分かれば攻撃できちゃうような
駄目システムがさらに弱くなるってことか?
0778nobodyさん
2009/02/18(水) 19:31:09ID:???脆弱性が見つかった後の防御が落ちる
0779nobodyさん
2009/02/18(水) 20:25:48ID:???0780nobodyさん
2009/02/18(水) 20:45:10ID:???商用でもOKってことですか?
0781nobodyさん
2009/02/18(水) 20:47:06ID:???0782nobodyさん
2009/02/18(水) 20:47:11ID:???要するにフィールド名がすぐにわかるようではセキュリティに問題があるということね。
なら、君は今から、
「脆弱性対策のために安易に推測できるフィールド名を使わないようにする。」
というルールを提唱するべきだ。
例
商品名のフィールド名を product_name にしてはいいけない。
値段のフィールド名を price にしてはいけない。
0783nobodyさん
2009/02/18(水) 23:04:31ID:???ttp://blog.livedoor.jp/coelacanth_blog/archives/55093835.html
0784nobodyさん
2009/02/19(木) 00:14:13ID:???落ち着けよ。
「出さなくて済む情報は可能な限り出さない」
はセキュリティの基礎の基礎でしょうが。
>商品名のフィールド名を product_name にしてはいいけない。
product_nameだろうとfooだろうとbarだろうと
「公開されているのは、公開されていないより、
セキュリティ的には望ましくない」
あとは生産性その他との
トレードオフでどう考えるかという話。
(でもスキーマが判るのはcakeに限らないんじゃないか?
よく知らんけど)
0786nobodyさん
2009/02/19(木) 09:54:12ID:???つまり、HtmlHelper で足りないものをTextHelperで補うイメージかと。
本来のbehaviorのあり方からいくと、役割が違うというのは、今まで類似のものがない(よね?)ことからも窺い知れるが。
0787nobodyさん
2009/02/19(木) 11:24:36ID:???しても、なかなか1回で全ての関連テーブルを
認識してくれないのって、そのうち直るのかなぁ。
今は、何回かbake allすると、少しずつ認識される感じ。
0788nobodyさん
2009/02/19(木) 12:06:46ID:???layout で <body id="bodyContainer"> とかいてあるものを使っているのですが、
いくつかの view だけ body の onload を書きたいのですが、
onload のために layout がどんどん増えるのは嫌なので、
view から body に onload を足す事できないかなぁ、と。
何かよい方法ないでしょうか?
0791nobodyさん
2009/02/19(木) 12:47:55ID:???0792nobodyさん
2009/02/19(木) 12:54:43ID:???view\layouts\default.ctp には
<body id="bodyContainer">
<?php e($content_for_layout); ?>
</body>
とあって、コントローラからは
var $layout = "default";
としてレイアウトを利用しています。
ここで、あるビューだけ、レイアウトは default.ctp を使いつつ
body タグの内容を
<body id="bodyContainer"> → <body id="bodyContainer" onload="hoge();">
にかきかえたいですが、コントローラでどのようにセットすればいいんでしょうか?
0793nobodyさん
2009/02/19(木) 13:42:29ID:???setした内容は$content_for_layoutの中身だけで使えるわけじゃないです。どこでも使えます。
0794nobodyさん
2009/02/19(木) 14:09:58ID:???もしかして、コントローラで、
$this->set("body", '<body id="bodyContainer" onload="hoge();">');
して、view\layouts\default.ctp の中で、
<?php e($body); ?>
こうするって事?
もしそうなら、(わがままかもしれませんが)
そのレイアウトを使う全てで body を set しないといけなくなるので、
まるごと出力じゃなくて、場合によって
追記、もしくは置換できるといいんですけど…。
いくらなんでもそこまでは無理でしょうか。。。
0795nobodyさん
2009/02/19(木) 14:22:39ID:???0797nobodyさん
2009/02/19(木) 14:45:31ID:???そうか…そうですね…。
頭カチカチだったようです…。
情けない…。
大変ありがとうございました。
0798nobodyさん
2009/02/19(木) 17:11:58ID:???0799nobodyさん
2009/02/19(木) 17:50:53ID:???0800nobodyさん
2009/02/19(木) 18:53:52ID:???0801nobodyさん
2009/02/19(木) 18:54:22ID:???0802nobodyさん
2009/02/19(木) 19:47:50ID:???0803nobodyさん
2009/02/19(木) 19:57:34ID:???そういった場合はフォームヘルパー使えないよね?
0804nobodyさん
2009/02/19(木) 20:01:14ID:???キミがやろうとすることは大体できると思って良い
http://book.cakephp.org/ja/view/547/
http://book.cakephp.org/ja/view/75/
0805nobodyさん
2009/02/19(木) 20:09:14ID:???Cakeで構築されたサイトは表示してないですけど
どうでしょ?
0808nobodyさん
2009/02/19(木) 20:22:31ID:???ライセンスの事は気にして
無かったけど。
アクセスして来る人にも
ライセンスを見せないといかんの?
0809nobodyさん
2009/02/19(木) 20:26:56ID:???0810nobodyさん
2009/02/19(木) 20:36:35ID:???formヘルパーのcreateメソッドの$modelには何を入れるべき?nullでいい?
0812nobodyさん
2009/02/19(木) 20:45:25ID:???0815nobodyさん
2009/02/19(木) 21:05:17ID:???HABTMにしてる。memberが1,2,3、projectがA,Bとする。
・project Aにmember 1,2が関わり、
・project Bにmember 2,3が関わる。
この状態で、project Aのmemberを1,3にすると、
project Bに関わるmemberから、member 2が消えてしまう。
たぶん自分が悪いんだろうと思うのだけど、
素朴なHABTMモデルなので、理由が分からず。。。
0816nobodyさん
2009/02/19(木) 21:12:05ID:???0817nobodyさん
2009/02/19(木) 21:56:13ID:???0819nobodyさん
2009/02/19(木) 22:05:03ID:???0820nobodyさん
2009/02/19(木) 22:12:17ID:???0821nobodyさん
2009/02/19(木) 22:21:22ID:???「Cakeで作ってます」って表示する方が
セキュリティのリスクが高くなるじゃん。
0822nobodyさん
2009/02/20(金) 00:20:06ID:???0823nobodyさん
2009/02/20(金) 00:40:30ID:???0824nobodyさん
2009/02/20(金) 00:45:27ID:???0825nobodyさん
2009/02/20(金) 00:52:40ID:???0826nobodyさん
2009/02/20(金) 01:01:35ID:???815です。まさにそれでした。
'unique'=>false、とすると、大丈夫なんですね。
助かりました。ありがとう。
# trueがデフォルトらしいけど、trueの使い方が分からない。。。
0827nobodyさん
2009/02/20(金) 01:07:11ID:???この流れは秀逸。
そーっすねというありきたりな発言から、最終的には村上ジョージになってしまうという。
0828nobodyさん
2009/02/20(金) 01:39:48ID:???if (!empty($this->data))...
みたいに判定するのがなんか気持ち悪いんですが、
みなさんどうしてます?
RequestHandlerとか使えばいいのかな?
0829nobodyさん
2009/02/20(金) 03:22:14ID:???0830nobodyさん
2009/02/20(金) 10:08:57ID:???思いつきだけど
オレオレComponent(かapp_controller)でチェックするのもよいかも
if ( $this->Ore->isPost() ) ...
入力補完が効く分、良いかな?
0831nobodyさん
2009/02/20(金) 10:22:41ID:???・・・って今更か。
0832nobodyさん
2009/02/20(金) 15:23:39ID:???0833nobodyさん
2009/02/20(金) 18:16:44ID:???reserfにされた。あほー
これ、どうしたらいいと思う?
1)複数形のルールを書いてbakeし直す
2)reserf→reserveに自分で全部書き直す
3)そのまま使う
0835nobodyさん
2009/02/20(金) 19:15:41ID:???0836nobodyさん
2009/02/20(金) 19:16:04ID:???0838nobodyさん
2009/02/20(金) 19:29:22ID:???RoRはあんまり触ったことがないんだよね。
チュートリアルやってみた感じだと、cakePHPと似てるみたいだけど。
0840nobodyさん
2009/02/20(金) 21:11:09ID:???0841nobodyさん
2009/02/20(金) 22:04:37ID:???0842nobodyさん
2009/02/21(土) 00:44:11ID:???1.1は重すぎる。
0843nobodyさん
2009/02/21(土) 00:56:54ID:YnbiMze9PHPのメモリーリミット(8M)に引っかかってエラーになってしまいます。
ローカル環境ならPHPのメモリー設定すれば使えるんですが、
本鯖は設定がいじれないので困ってます。
Qdmail使ってる方はそんなにメモリー食いませんか?
なんか軽く使えるような設定あるんでしょうか?
0844nobodyさん
2009/02/21(土) 01:29:06ID:???用心のためのリミット。
ソフトウェアから簡単に上限を変更できる。
まあ共有サーバーでしょうから節度を守った使い方をするように。
0845nobodyさん
2009/02/21(土) 02:30:33ID:YnbiMze9レンタル鯖で、php.iniや.htaccessではダメだったんですが、
phpの中からメモリ設定してやればOKでした。ヒントどうもありがとう。
0846nobodyさん
2009/02/21(土) 08:15:24ID:???Qdmail使っているけどひっかかったことはないし、Qdmailというより、そこまでの処理だとかメールの内容とかの問題のように思うが。
0847nobodyさん
2009/02/21(土) 11:34:41ID:???メール本文は当然、タイトル(見出し)、送信者名の日本語が絶対文字化けしない。
CakePHPで安心して日本語メールが送れる。
Qdmailの使い方 CakePHPでのメール送信
http://hal456.net/qdmail/cakebase#c
※CakePHP1.2から「Emailコンポーネント」が標準装備されたが、日本語メール送信
には少々難あり。残念!
0848nobodyさん
2009/02/21(土) 15:29:15ID:???問題ある部分の文字コードなどを変換して送信とかしてる。
必要な部分しか対応していないけど。
0849nobodyさん
2009/02/21(土) 17:11:38ID:???問題のある部分ってどこなの?
to , from , subject であってる?他もある?bodyとか
結局Qdmail使ってるんだけど、本当はMailComponent使いたいんだよね。
0850nobodyさん
2009/02/21(土) 17:37:44ID:???0851843
2009/02/21(土) 17:49:16ID:???そうですか。使い方はいたって普通というか、Qdmailのサイトに乗っている通りの使い方です。
例えば、users_controllerで登録したユーザーにメールを出すという感じの使い方で、
var components = array('Qdmail'); として、
function _sendusermail() みたいに関数にして作ってます。
でも、users/index みたいにQdmailを使わないアクションを呼び出しても、
メモリエラーが出ます。var components からQdmailを外すとエラーは出ません。
ので、Qdmailを読み込んだ時点でメモリを凄く食ってるのかな。と思ってるのですが。
とりあえず、ini_set("memory_limit", "-1"); とやって制限を外すことで動きました。
0852nobodyさん
2009/02/21(土) 18:00:40ID:???CakePHP1.2のEmailコンポーネントは、
ファイル添付で、日本語ファイル名もNGじゃなかったかな?
Qdmail使っとく方が悩まなくて良いと思うけどなあ?
なぜ、EmailComponent使いたいの?
0853nobodyさん
2009/02/21(土) 18:14:23ID:???CakePHP 1.2.0.6311-betaの08/02/21のEmail Componentの調査報告
p.19〜p.28に日本語メールの事が書いてある。
http://handsout.jp/slide/225
0854nobodyさん
2009/02/21(土) 23:31:08ID:???他の、例えばpagenatorの変数と干渉せずに、追加して、
取得するには、どうしたら良い?
0856nobodyさん
2009/02/22(日) 00:50:22ID:???当たり前かもしれませんが・・・
アクションに渡すパラメータが先で、
namedに入れるのはurlの最後ですよね?
0857nobodyさん
2009/02/22(日) 04:45:42ID:???/model/view/1
とかして、
function view($id) {
で$idを取得せずに、
/model/view/id:1
function view() {
$id = $this->params['named']['id'];
みたいにして取得した方が無難?
0858nobodyさん
2009/02/22(日) 10:08:35ID:???それで出力はeucJP-winからUTF-8にして、保存はUTF-8からeucJP-JPにしたいのですが、何か良い方法はありませんか。
0859nobodyさん
2009/02/22(日) 10:18:13ID:???つ http://book.cakephp.org/ja/view/40/
encoding
0860nobodyさん
2009/02/22(日) 10:19:25ID:???ググったら、「pagenator使う時にはGETのパラメータは
無効になる」って書いてる所があったけど。
試してみたら、
/model/view/sort:id/1とか、間に他のパラメータが入ってても、
viewのアクションの引数に1が渡ってた。すごい。
そうすると。$html->link()で、urlに'id:1'とかを挿入する
スマートな方法があれば良いんですけど。
$named='/id:'.$id;
echo $html->link('Enter', '/pages/home'.$named, $htmlAttributes);
みたいに書き替えて行かないとダメですかねぇ?
$htmlAttributesに追加する方法とかありますか?
0863nobodyさん
2009/02/22(日) 13:17:59ID:V5qtKih8そうだよねえ。database.phpの設定はujisで、
encodingでハンドリングするんだよねえ。
0865nobodyさん
2009/02/22(日) 13:33:04ID:???database.phpのencodingをutf8にすると、内部でSET NAMEされているようで表示は問題ありません。
ただ、それだと保存したときに新JISが登録出来ないので、database.phpの設定をujisにして、ビューに渡すデータはeucJP-winからUTF-8にして、モデルに渡すデータはUTF-8からeucJP-winにしたい、ということです。
紛らわしくてすみません。
0866nobodyさん
2009/02/22(日) 15:38:22ID:n5m/3HJ0railsの方が断然はやいよ。測定するまでもない。数倍違うから体感できる。
0867nobodyさん
2009/02/22(日) 16:08:49ID:???よく分かってないけどDBの文字コードは変えられないという仮定で。
一般的には、beforeSaveとafterFindで変換だけど、それじゃだめってこと?
0869nobodyさん
2009/02/22(日) 19:20:17ID:mjuU1FsC$useTable = false;
しても、バリデーションしようとするとDBエラーが出るよ・・・(;´Д`)
0870nobodyさん
2009/02/22(日) 19:27:43ID:???0871nobodyさん
2009/02/22(日) 19:32:35ID:???http://cakephp.jp/modules/newbb/viewtopic.php?post_id=2771&topic_id=1317&forum=6
柔軟性のないFWだなあ…
0872nobodyさん
2009/02/22(日) 19:56:41ID:???0873nobodyさん
2009/02/22(日) 20:31:34ID:???モデルでやったほうがいいのかね?
コントローラー?
0875nobodyさん
2009/02/22(日) 21:09:32ID:???どちらがベターかと言えばModelだろうねえ
Controller(やComponent)でやるほうが簡単だったりするがMVC的にM
でもオレオレ解は、確認画面つくらないなら、Javascriptでやる
0877nobodyさん
2009/02/23(月) 04:12:40ID:???モデルに一票。trimビヘイビア作るのもいいかもしれない。
ところで 自分は euc-jp で何度も痛い目あってutf-8オンリーでここ数年プログラムやってるけど
euc-jp で組んでる人ってなぜeucなの?
0878nobodyさん
2009/02/23(月) 07:01:24ID:???今まで(今でも)euc-jpで書かれたベタのPHPアプリが多く、php.iniがeuc-jpになって
いて変更出来ない。utf-8用サーバをもう一つ立てる事は費用対効果が許してくれない。
みんなPHPからCakePHPへ移行するのを面倒がる。メンテが主で、新規は少ないんだから
PHPのままでいいんじゃんとみんな消極的。(Cakeで作ったものを見ると、やっぱFWは
良いねえとは言うけど)
0879nobodyさん
2009/02/23(月) 07:58:49ID:???ttp://cakephp.jp/modules/newbb/
0880nobodyさん
2009/02/23(月) 07:59:36ID:???0882nobodyさん
2009/02/23(月) 09:10:43ID:???0883nobodyさん
2009/02/23(月) 09:26:12ID:???対応したエンジニアが居れば良いだけ
0884nobodyさん
2009/02/23(月) 09:41:24ID:???0887nobodyさん
2009/02/23(月) 17:39:27ID:???非常に強力でありがたいが。関連が複雑になる(数が増える)と
hasOneやbelongToなどがどこまでデータを持ってくるのか、
未だに把握できてない。
簡潔明瞭に説明してくれてる所はないものか。
0888nobodyさん
2009/02/23(月) 18:58:53ID:???テーブルにfirst_nameとlast_nameというカラムがある場合、この二つを結合した値をセレクトボックスのラベルとして表示したい時はcombineを使うしかないんですかね?
railsだともっと簡単にできるんでしょうか・・・。
0891nobodyさん
2009/02/23(月) 20:15:25ID:???この時PHPのプログラムはコントローラに当てはまるんですかね?
また、どのディレクトリに置けばいいんでしょうか?
0892nobodyさん
2009/02/23(月) 21:32:43ID:???参照する時って、addressモデルにアソシエーションが書いてあれば、
prefectureモデル(model/prefecture.php)って作らなくても大丈夫?
0893nobodyさん
2009/02/24(火) 00:07:55ID:???cakeのアクションとして呼び出すならコントローラだし、
cakeと全然関係ないならvendorsとかにいれとけばいいのでは。
0896nobodyさん
2009/02/24(火) 08:00:04ID:???0898nobodyさん
2009/02/24(火) 08:50:43ID:???loginした時間をデータベースのusersに記録したいのですが、
その処理はどこに書いたらいいんでしょう?
usersのloginアクションは認証前には来るけど、
認証が成功するとそれぞれのページに飛んでしまう。
login成功後(だけ)に処理させてくれる場所が分からない。
0900nobodyさん
2009/02/24(火) 10:03:12ID:???0902nobodyさん
2009/02/24(火) 12:21:07ID:???0903nobodyさん
2009/02/24(火) 14:37:24ID:???function beforeFind($qd) {
$qd['conditions'] = 'delete_flag = 0';
return $qd;
}
こうすると、delete_flagが0の物しかfindされません。
普段はこれで良いのですが、まれにdelete_flag =1
のデータも検索したい時には、どうしたら良いでしょう?
0905nobodyさん
2009/02/24(火) 15:55:29ID:???有効のようですね。ありがとうございます。やってみます。
やりはじめたのですが。なんとなく、設定を解除しながら
使うよりも、そのつど設定した方が簡単なような気がして
きました。
どこにどのように設定されているか確認しながら解除する
必要があるため、厳密にやるとちょっと面倒。
0906nobodyさん
2009/02/24(火) 17:53:07ID:???0907nobodyさん
2009/02/24(火) 17:54:24ID:???0909nobodyさん
2009/02/25(水) 09:37:56ID:???action属性が付かなくするにはどうすればいいですか?
0911nobodyさん
2009/02/25(水) 09:50:02ID:???書くのが基本なんだろうけど、ユーザーがブラウザ
から変更できると良いこともあるので、どこかに
設定ファイルを持ちたいのだけれど。
どこに、どういう形で置くと、無駄が少ないだろう?
データベース?に配列ごとぶち込む?
設定ファイルに書くとしたらどこに、どんなふうに?
Cake流のやり方とかありますか?
0913nobodyさん
2009/02/25(水) 10:39:26ID:BZ8YN1wt(←は多対1)
みたいなモデル構成のときに、$this->A->find()
する場合に、Cのカラムで検索条件を指定するのって
どうすればよいのでしょうか。
find時のrecursiveは2にしていますが、どうもうまく出来ません。
デバッグ情報を見てみると、
A←BのJOINしかしていないように見えるんですが。。。
0914nobodyさん
2009/02/25(水) 12:10:26ID:???そうだよね・・・。ありがとう。
データベースに入れると、処理が無駄っぽいかな。
外部の設定ファイルって、どこに置くのが安全で便利?
0915nobodyさん
2009/02/25(水) 13:32:40ID:???みなさんどのようにしてますか?
辿ってきたcontroller名からviewを切り替えてますが、
他に良い方法ありますか?
0916nobodyさん
2009/02/25(水) 13:57:01ID:???うーん、消えませんでした。
array('default'=>false)でsubmitはしなくなるようですが。
ヘルパー使わずに直接記述すると何かデメリットありますか?
0920nobodyさん
2009/02/25(水) 14:43:45ID:???http://cakephp.jp/modules/newbb/viewtopic.php?topic_id=1779&forum=9&viewmode=flat&order=ASC&start=0
...orz
0921nobodyさん
2009/02/25(水) 14:58:32ID:???親になるモデルからクエリキャッシュしながらキーを取ってきて、
動的に扱う子のモデルにキーを渡した方が良いと思うのだが…。
0922nobodyさん
2009/02/25(水) 15:48:03ID:???0923nobodyさん
2009/02/25(水) 18:27:28ID:???Configure::load の説明だと思うのですが。
あれだとスタティックな設定の読み込みですよね?
変更するには、直接ファイルの書き替えが必要なのでは?
できれば、(あの例なら)sloganをアプリの中から、
書き替えたいのです。
Configure::writeしたものって、どこに保存されてるんでしょう?
ちょっとコントローラに書き込み/読み込みするものを書いて
みたのですが。
直後にConfigure::readすると出てくるけど、コントローラを
再読み込みすると消えてしまう。
0925nobodyさん
2009/02/25(水) 22:27:20ID:???逆に考えるんだ。jojo
B belongsTo C
B hasMany A
app/model/a.php
<?php
class A extends AppModel {
$var $hasMany = array('B' => array('className' => 'B'));
function useConditionForC($id) {
$conditions = array('A.id' => $id, 'C.foo' => 'hoge');
return $this->B->find('all', array('conditions' => $conditions));
}
}
?>
app/controller/as_controller.php
<?php
class AsController extends AppController {
function index($id) {
$this->set('data', $this->A->useConditionForC($id));
}
}
?>
0926nobodyさん
2009/02/25(水) 22:28:49ID:???0927nobodyさん
2009/02/25(水) 23:17:48ID:???(ちょっと複雑な検索は普通にゴリゴリSQL書いてたw)
0928nobodyさん
2009/02/26(木) 10:33:25ID:???昨日から格闘してるけど、なかなか思い通りにならないorz
0930nobodyさん
2009/02/26(木) 12:00:53ID:???ユーザーが書き換え可能な設定って、
どこに書いて、どう保存するのがいいの?
0931nobodyさん
2009/02/26(木) 12:06:49ID:???もうちょっと具体的に書いてくれないと分からないんだよね
ユーザーが書き換え可能な設定って何?(ユーザーって誰?アクセスする人全員?ユーザー登録した人?管理者?)
0932nobodyさん
2009/02/26(木) 13:00:29ID:???店長が、店名や電話番号、スローガンを書き替えたりする感じ。
店名とかの情報は、他の店員などのユーザーが共通して引用する。
店長が/app/config/のファイルを直接編集すれば、アプリとしては
何もしなくていいので楽だけど・・・できれば、してもらいたくない。
というか、/app以下に、アプリ以外の情報は入れたくないんだった。
(アプリのバージョンアップは、/appの入れ替えで考えてる)
そうすると、Configure::loadもダメじゃん orz
やっぱ、データベースに入れるか。
bootstrap.phpからモデルにアクセスできるっけ?
0933nobodyさん
2009/02/26(木) 13:38:44ID:???1app=1店舗 という理解でよいのかな?
だとすると、個人的な意見としては、DBに保存するのが、Cake的に楽だと思う。
0935nobodyさん
2009/02/26(木) 14:24:14ID:???>1app=1店舗
そうです。
DBに入れるのが楽ですか。
>>934
DBからデータを読み出すのは、bootstrapじゃなくて、
app_controllerからってことでしょうか?
confモデルとかを、app_controllerで、App::importで
インスタンスにして読み出して、$Controller::set()で
適当な変数(例えば、$this->data['confs'])にセット
して(viewに渡して)おけば、どこからでも使える?
あ。なんとなくダメっぽい気がする。
0937nobodyさん
2009/02/26(木) 14:35:36ID:???# app_controller.php
# beforeFilter() or beforeRender()
$this->set('shop' ,$shop = $this->Shop->find('first' ,$options));
0938nobodyさん
2009/02/26(木) 14:38:58ID:???マニュアルには出てないからAPIの方を見てください。
0940nobodyさん
2009/02/26(木) 15:04:17ID:???Configure::loadとConfigure::storeのパスを
app/config以外に変更できればいいのですが。
0941nobodyさん
2009/02/26(木) 15:14:22ID:???とかなら可能だけど・・・あんまりお勧めできないわな。
0942nobodyさん
2009/02/26(木) 15:56:30ID:???の258に出てた。
>・Configure::store('AAA', 'a', array('data'=>'123'));で値保存。
> /app/temp/cache/persistent/a.php ができる。
> Configure::load('a'); でa.phpファイル読み込み
> pr(Configure::read('AAA')); で保存した値表示。
確かに、その場所に保存されてた。うーむ。
0943938
2009/02/26(木) 16:01:56ID:???じゃあ設定自体はDBに入れといて、
storeしておけばどこからでもConfigure::readで使えるってぐらいかな。
0944nobodyさん
2009/02/26(木) 17:11:49ID:???なるほどね。expiresが長いけど、cacheファイルが無くなる可能性を考えると
bootstrapでConfigure::loadして、読み込めなかったらapp_controller等でfind & Configure::store
あとは、afterSaveでConfigure::storeする感じか
0945nobodyさん
2009/02/26(木) 18:02:14ID:/EQHTY5Kアソシエーションされたモデルのビヘイビアって動作しないのでしょうか?
何か動作させる方法があれば教えてください。
ModelAに
hasMany=>ModelB
とあるとして、
ModelA,ModelB両方にactsAsで同一ビヘイビアを呼び出している場合、
ModelA->find等とした場合に、ModelAはビヘイビアが効いていますが
ModelBには効きません。
これは正常動作ですか?何とか回避する方法はありますでしょうか?
0947nobodyさん
2009/02/26(木) 18:22:59ID:/EQHTY5K自作してる途中に気付きまして。
ビヘイビア側で対応する必要があるんですかね??
ただ、ちょっと今配布物みてそれがきちっと動くなら参考に・・と思って
AttributeBehavior
http://bakery.cakephp.org/articles/view/attributebehavior-dry-and-powerful
これやってみたんですが、
やはりアソシ先には効いてないですね。
動作するビヘイビアがあれば参考までに教えていただきたいです。
0948nobodyさん
2009/02/26(木) 18:32:29ID:???いやsettingがかぶらない処理がしてあるから動くのかと思っただけ。アソシエーションの場合じゃないんだな
アソシエーション先のModelにもattachするとか、アソシエーション先のModelの処理も元ビヘイビアに書いちゃうとか、だめかい?
0949nobodyさん
2009/02/26(木) 18:38:25ID:/EQHTY5Ksetupは両方のモデルから呼び出されていますね
afterFindは親モデルからしか呼び出されないですね
当然といえば当然なんですかね。
>アソシエーション先のModelの処理も元ビヘイビアに書いちゃうとか、だめかい?
それしかないかなと思うんですよね。
0950945
2009/02/26(木) 21:46:08ID:/EQHTY5Kおそらくまったく同じ質問を英語で見つけました。
coreを改変する云々言ってるようですね。
ModelA hasMany ModelB
ModelB actsAs SomeBehavior
SomeBehavior defines afterFind()
ModelAController::someAction() has:
$this->ModelA->recursive = 1;
$this->ModelA->findAll();
Will SomeBehavior::afterFind() be triggered for ModelB, since ModelB
will be retrieved via association to ModelA?
http://groups.google.com/group/cake-php/browse_thread/thread/5f3d90e3686f191b/c3bb61dfb902b8c9?lnk=gst&q=afterfind
0951nobodyさん
2009/02/27(金) 01:00:21ID:???そこで質問したらすぐ答えてくれるのかな。
0952nobodyさん
2009/02/27(金) 04:38:34ID:???例だとvarcharになってるけど。これをBLOBとかにしても大丈夫?
(データベースはMySQL)
今は、varchar(100)で使ってるんだけど。phpmyadminで
ユーザー名とかが丸見えなんだよね。
気休めでしかないのは分かるけど・・・BLOBなら、phpmyadmin
では表示されないので、大丈夫なら変更したいんだけど。
0953nobodyさん
2009/02/28(土) 01:34:16ID:???allなのかfirstなのかlistなのかなどです。
0954nobodyさん
2009/02/28(土) 08:09:52ID:???0955nobodyさん
2009/02/28(土) 09:24:09ID:jSeVzlRvダミーのテーブルなしモデルを使う以外の方法はありますか?
App::import('Core', 'DboSource');
$data = DboSource::query($sql);
とかやってみたのですが、DataSourceクラスがないと言われ、
DataSourceもApp::importしてみたのですが、同様でした。
0956nobodyさん
2009/02/28(土) 09:25:12ID:???何のために知りたいか分からんから外してるかもだが、beforeFindではなく、Model::find()で判定すれば確実では?
0957nobodyさん
2009/02/28(土) 20:25:45ID:???$db =& ConnectionManager::getDataSource('default');
$result=$db->query('SELECT 〜');
0958nobodyさん
2009/03/01(日) 21:42:51ID:???↓ここを見て
http://hal456.net/qdmail/oopbase
$to = array('hoge@example.co.jp', 'foo@example.co.jp');
$this->Qdmail->to( $to );
としましたが、hogeにもfooにもメールが届きません。
$this->Qdmail->to('hoge@example.co.jp');
$this->Qdmail->cc('foo@example.co.jp');
にするとhogeとfooの両方に同じメールが届きQdmailが動いている事が確認出来ました。
解決のアドバイスをください。
さくらスタンダード、CakePHP1.2.1、Qdsmtp0.2.0a、Qdmail1.2.6b
0959nobodyさん
2009/03/01(日) 22:01:11ID:???自己解決しました。
$to = array('hoge@example.co.jp', 'foo@example.co.jp');
$toName = array('hoge', 'foo');
$this->Qdmail->to( $to, $toName );
のとおり$toNameで相手先名を設定する事で複数宛先へメールを送る事が出来る様になり
ました。お騒がせしました。
0960nobodyさん
2009/03/03(火) 15:11:04ID:???(たとえばNicEditとか)を付けるには、
どうしたらいいですか?
0961nobodyさん
2009/03/03(火) 16:47:53ID:???http://bakery.cakephp.org/articles/view/using-tinymce-with-cakephp
この辺が参考になるのでは。
つうかJavascriptをどっかで貼付るだけだけどね。
0962nobodyさん
2009/03/03(火) 17:32:49ID:???あとは、CakePHPの変態cssを何とかしたい・・・
0963nobodyさん
2009/03/03(火) 20:26:38ID:???0964nobodyさん
2009/03/04(水) 13:58:49ID:???http://cakephp.jp/modules/newbb/viewtopic.php?viewmode=flat&topic_id=1421&forum=7
0965nobodyさん
2009/03/04(水) 16:22:08ID:???なんで横幅を固定するのかなぁ?
リキッドレイアウトにした方がいいのに。
0966nobodyさん
2009/03/04(水) 20:19:52ID:???背景ひとつにしてもリキッドレイアウトだと
横に広げても違和感ないような同じパターンの
繰り返しの絵しか使えない。
不自然な空白は見た目が悪い。
0968nobodyさん
2009/03/05(木) 00:47:12ID:???さて。>964の様な追加のcssを適用するのは、
どうするのがCake流?
cake.generic.cssを書き替える、上書きする?
それとも、別ファイルにして読込む?
0969nobodyさん
2009/03/05(木) 00:49:36ID:???自分は cakephpのcss は完全に捨てる。
で、 blueprint.css という cssフレームワークを使ってデザインしてきます。
0970nobodyさん
2009/03/05(木) 08:02:38ID:???データベースの内容を言語別に出力できる仕組みなどはあるのでしょうか?
それとも、自分でURLなどから振り分ける必要があるのでしょうか?
どなたかわかる方がいましたら、教えてください。
0971nobodyさん
2009/03/05(木) 09:39:03ID:???国際化の仕組みはある。
言語別に出力するのはぐぐれば出てくるよ。確かgooglebotの場合に気をつけなきゃとかはあったはずだけど。
0972nobodyさん
2009/03/05(木) 09:43:56ID:???>>964-965はあくまでFormHelper向けのCSSの話。それ以外はみんな独自でしょ。多分。
で、微妙にスレチついでに悪いけど、blueprintってネガティブマージンみたいなことできるの?
「左・メイン・右」のようにカラムがあるとき、できればメインから記述したいのだが。
0973nobodyさん
2009/03/05(木) 13:24:47ID:???あ・・・そうなんだ。フォームだけか。フォームヘルパー使わずベタ書きしてるから
気にもとめなかった。
ネガティブマージンとかわからない。わかれば教えたいけど。
にしてもblueprintは便利。
0974nobodyさん
2009/03/05(木) 15:44:09ID:???プラグインやらなんやらないかと探したけど見つからないんですが
よく使う機能だと思うんですけどみなさんどうされてますか?
0975nobodyさん
2009/03/05(木) 16:51:37ID:Oid1bNoJ0976nobodyさん
2009/03/05(木) 18:57:33ID:???$this->params['form'] を使えばいいのかな、と思ったんですが、
試しにコントローラで
pr ($this->params['form']);
を見てみたら、結果が
Array
(
)
となります。 $this->data には post された値は入ってきます。
post されたパラメータを取得するのにはどうしたらいいですか?
0977nobodyさん
2009/03/05(木) 19:24:56ID:???$this->data['submit']でとれんでねーの?
0978nobodyさん
2009/03/05(木) 23:13:28ID:???0979nobodyさん
2009/03/05(木) 23:17:52ID:???paramsに
0980nobodyさん
2009/03/06(金) 12:18:30ID:6wpuU2yaサーバーにファイルの実態がないとだめですか?
PDFをFPDFで作成しているのですが、文字列でアウトプットして、
ファイル名をつけてそのまま添付したいのですが。
0982981
2009/03/06(金) 16:01:39ID:???0983nobodyさん
2009/03/06(金) 20:35:07ID:???実態作りたくなければ、
バウンダリー云々して自分でメール組み立てればいいだろうけどめんどくさそう。
0984nobodyさん
2009/03/07(土) 08:43:19ID:???http://book.cakephp.org/ja/complete/92/%E7%BF%BB%E8%A8%B3
翻訳ビヘイビアというのがあってな
0985nobodyさん
2009/03/07(土) 22:32:36ID:???なかなかバージョンアップこないね。
レス数が950を超えています。1000を超えると書き込みができなくなります。