【PHP】フレームワーク CakePHP 12ホール目【笑】
レス数が900を超えています。1000を超えると表示できなくなるよ。
0001nobodyさん
2011/07/01(金) 16:33:46.28ID:???CakePHPから派生したLithium(li3)も専スレできるまではここでどうぞ
質問するときはCakePHPのバージョンを書きましょう
※sage推奨
※質問時もsageること
※他フレームワークとの比較等はスレ違いです
テンプレは>>1-5くらい
■本家
http://www.cakephp.org/
APIドキュメント
http://api.cakephp.org/
the Bakery
http://bakery.cakephp.org/
CakeQs
http://cakeqs.org/
CheatSheet (PDF)
http://cakephp.org/files/Resources/CakePHP-1.2-Cheatsheet.pdf
github - cakephp
http://github.com/cakephp
■日本語公式
http://cakephp.jp/
フォーラム
http://cakephp.jp/modules/newbb/
cookbook(マニュアル)
http://book.cakephp.org/ja
前スレ
【PHP】フレームワーク CakePHP 11ホール目【v1.3】
http://hibari.2ch.net/test/read.cgi/php/1297860755/
0826nobodyさん
2011/10/28(金) 14:26:18.96ID:???0827nobodyさん
2011/10/28(金) 15:09:23.87ID:???時々Containableでは賄いきれなくてbindModelとか使うはめになるとチッって思う。
0828nobodyさん
2011/10/28(金) 16:10:21.67ID:???色々付けたり外したりしてると、わけわからんようになってくるしw
0829nobodyさん
2011/10/28(金) 16:33:42.39ID:???わかりやすく説明して賢い人!
0830nobodyさん
2011/10/28(金) 16:54:11.63ID:???0831nobodyさん
2011/10/28(金) 17:45:15.20ID:???bind,unbindするより500倍扱いやすい
http://book.cakephp.org/ja/view/1323/%E3%82%B3%E3%83%B3%E3%83%86%E3%82%A4%E3%83%8A%E3%83%96%E3%83%AB
>コンテイナブルを使わないならモデルの unbindModel() を使用することになります。複数のモデルを切り離すなら、
>unbindModel() を何度も実行しなければなりません。コンテイナブルによって同じことをより簡潔に行えます。
0832nobodyさん
2011/10/28(金) 18:19:37.84ID:???関連付けってアソシエイションのことだよね?
関連付けたモデルを取得しないってのは
recursiveでやるじゃなかったっけ?
0833nobodyさん
2011/10/28(金) 18:33:08.66ID:???groupオプション(GROUP BY)付けてページネートしてみて
ページが1ページしかないように返してくるから
これってバグだよね?
ググってみると、
http://d.hatena.ne.jp/aroundthedistance/20090728/1248784179
こんな記事もあるんだけど、
2009年の記事なのに未だに(1.3使用)直ってないってこと?
0834nobodyさん
2011/10/28(金) 19:31:34.10ID:???0835nobodyさん
2011/10/28(金) 22:04:00.46ID:???0836nobodyさん
2011/10/28(金) 22:14:35.50ID:???検索して、ヒットしたブログ記事を参考に実装してた。
0837nobodyさん
2011/10/28(金) 23:14:17.04ID:???recursiveでもできるよ。
だけど、containableを使うともっと細かく制御できる。
例えば、
usersテーブルに
hasOneでprofilesテーブルと
postsテーブルが
関連付けされててusersとprofilesだけ欲しい場合
$this->Users->find('all', array('contain' => 'Profile'));で取れる。
0838837
2011/10/28(金) 23:20:05.03ID:???$this->Users->find('all', array(
'contain' => array(
'Profile' => array('State')
)
));
で取れる。
0839nobodyさん
2011/10/29(土) 02:46:57.22ID:???誰かこれどう?1.3以上の人試してくれない?
コントローラの設定で、
var $paginate = array(
'Model' => array(
'group' => 'Model.id',
'order' => 'Model.id DESC',
'limit' => 5,
)
);
としてみるだけでいい
ページネーションのページ数が1になる
(ページ数(pageCount)が入っている配列はView内で $paginator->params() で取得可能)
0840nobodyさん
2011/10/29(土) 02:54:42.55ID:???・paginateメソッドがgroupに対応するとより複雑なグルーピングなどに対応できないなどの
拘束が生まれるので仕様
・バグじゃないから直らない
・記事の通りコールバック書け
0844nobodyさん
2011/10/30(日) 09:00:13.02ID:???40画像ぐらい表示させると、表示しない画像がちらほら出てくる・・・
実装としては、大きな画像をサーバ上に置いて、
・<img src="<?php echo $html->url('/thumbnails/view/1234'); " />
のようにimgタグでコントローラにリクエスト
・渡されたIDをもとに画像のパスが保存されてるテーブルをfind()
・その画像からサムネイルを生成して返す
という感じ。
1人がアクセスするたびに、40個画像があれば、
CakePHPが40個起動するのはやっぱりこの実装は問題ありなのかな?
同時接続数にひっかかってる気もする
ちなみに ZOZOTOWN(http://zozo.jp)はCakePHPではないと思うけど、
上記のような感じでアクセスされて生成している模様
0845nobodyさん
2011/10/30(日) 10:55:31.34ID:???実装に問題あり。
0846nobodyさん
2011/10/30(日) 12:54:12.82ID:???0847nobodyさん
2011/10/30(日) 18:03:57.54ID:???0848nobodyさん
2011/10/30(日) 23:20:56.06ID:???サムネイルキャッシュは公開ディレクトリに置くか、tmpディレクトリに生成して生PHPで読みに行かせるのがいいと思う
0849nobodyさん
2011/10/31(月) 00:54:49.04ID:???Mediaビューが便利。
0850844
2011/10/31(月) 06:30:50.20ID:???>>845
してると思います
ただ、生成したあとキャッシュしてるかもしれませんが、、、
http://imgc.zozo.jp/goodsimages/2207214/2207214_18_D.jpg?w=70&h=84
例えばこの画像だけど、
wやhの値を変えると、その大きさになります
http://imgc.zozo.jp/goodsimages/2207214/2207214_18_D.jpg?w=111
こんな感じで適当な値を全て保存してるはずないので
アクセスしたときに生成してるんだと思います
>>846
はい、最初はそう考えましたが、
様々な大きさにフレキシブルに対応したいと思って、
>>844のような実装にしたくなったのです
一度生成した画像はそのまま保存して、
その大きさの画像があれば、その保存したものを取りに行くという実装にしようかな?
ZOZOTOWNのような人気サイトはどう対応してるのか・・・
0851nobodyさん
2011/10/31(月) 07:09:00.82ID:???後は自分で考えなさいな。CakePHPはそこまでお世話できないよ。
0852nobodyさん
2011/10/31(月) 12:08:18.41ID:???そりゃ、サイズを入力したらそのサイズで表示(生成)されるよ。
でも、基本的にはショッピングサイトの画像サイズなんて決まってるから、
サイトで使用する画像だけ先に生成されるようにしてるんだろ。
だから、1アクセスで全ての画像を作成するんじゃないと思うよ。
0853nobodyさん
2011/10/31(月) 12:13:10.79ID:???0854nobodyさん
2011/10/31(月) 14:39:06.95ID:???User が複数の Item を持っているという仮定で、以下のようにすると Apple か Orange のいずれかをもつユーザーが抽出されます。
$options['joins'] = array(
array(
'table' => 'items',
'alias' => 'Item',
'type' => 'INNER',
'conditions' => array(
"Item.user_id = User.id"
)
)
);
$options['conditions'] = array(
'OR' => array(
'Item.name = "Apple"',
'Item.name = "Orange"',
)
);
$users = $this->User->find('all', $options);
これを Apple と Orange 両方持つユーザーを抽出したい場合どうしたらいいでしょうか?
MySQL のクエリは素人同然ですが、なにかヒントなどでもありましたらアドバイス下さい。
0855nobodyさん
2011/10/31(月) 18:48:00.13ID:???いつごろでるか予定は発表されてますか?
0856nobodyさん
2011/10/31(月) 19:36:30.56ID:???0857nobodyさん
2011/10/31(月) 19:39:16.86ID:???cakephpのライセンス情報はどこに載ってますか?
0858nobodyさん
2011/10/31(月) 20:17:55.13ID:???0859nobodyさん
2011/10/31(月) 20:54:23.92ID:???YMDとかDMYとか年月日全て指定すれば値が入るんですが。
今beforeValidateで無理矢理データを整形してるんですけど皆さんどうしてます?
0864nobodyさん
2011/11/01(火) 00:53:36.92ID:???0865nobodyさん
2011/11/01(火) 01:02:34.11ID:???0866nobodyさん
2011/11/01(火) 01:14:50.00ID:???0867nobodyさん
2011/11/01(火) 02:04:57.18ID:???0868nobodyさん
2011/11/01(火) 03:34:05.50ID:???0869nobodyさん
2011/11/01(火) 04:05:34.99ID:???0870nobodyさん
2011/11/01(火) 07:33:05.24ID:???金返せやゴルァ
0872nobodyさん
2011/11/01(火) 13:19:26.19ID:mfdF/wRx↑のブログの意見と同じくsmartyの
利便性がそれほど感じれず、そして、この利便性の割に
何故これほど普及したのかがよく分かりません。
優れているのはsmartyじゃなくてMVCという
考え方のほうだと思うんですけどどうなんでしょ
0874nobodyさん
2011/11/01(火) 13:42:39.88ID:???こういうサイトならこれだな。っていうのを見つけとけばいいだけの話じゃ。
0875nobodyさん
2011/11/01(火) 14:21:28.38ID:???php自体がテンプレートだから不要という意見もあるが、自由すぎて書く人によってコードの質が代わってくる
そこを埋めてくれるのがsmarty
一人しか開発に携わらないならフレームワーク+smartyなんて時間がかかるだけだよ
0876nobodyさん
2011/11/01(火) 15:34:31.28ID:???標準の http://hoge/users/view/user_id みたいにしたいんですが
エンジニア以外やcakeを使っていない人を説得できるうまい方法が
あったら教えてください…
0877nobodyさん
2011/11/01(火) 15:48:02.23ID:???0878nobodyさん
2011/11/01(火) 15:48:27.60ID:???前者のほうがみやすい
0879nobodyさん
2011/11/01(火) 15:51:12.54ID:???0880nobodyさん
2011/11/01(火) 16:49:15.06ID:???ユーザー名とサイトのパスが被らないように一段掘り下げて users から始めたい
社内アプリなんで user_name でURLを永続化させる意味がない
とか理由があるんでしょ?なぜ他人に聞く
0881nobodyさん
2011/11/01(火) 17:07:38.77ID:???0883nobodyさん
2011/11/01(火) 21:43:02.89ID:???cakephpのコンポーネントに書くのがふつうですか?
0884nobodyさん
2011/11/01(火) 23:30:24.20ID:???0885nobodyさん
2011/11/01(火) 23:45:13.83ID:???0886nobodyさん
2011/11/01(火) 23:47:41.47ID:???/var/www/html直下だよ。
0887nobodyさん
2011/11/02(水) 01:01:01.14ID:???0893nobodyさん
2011/11/02(水) 10:54:20.47ID:???どのようにして、リンク元のアドレスを知ることを出来るでしょうか?
0894nobodyさん
2011/11/02(水) 12:22:13.86ID:???こちらへどうぞ
http://hibari.2ch.net/test/read.cgi/hp/1317832246/
0895nobodyさん
2011/11/02(水) 13:54:57.66ID:???0896nobodyさん
2011/11/02(水) 15:12:23.06ID:???0897nobodyさん
2011/11/02(水) 15:55:00.74ID:???0898nobodyさん
2011/11/02(水) 16:31:28.48ID:???0899nobodyさん
2011/11/02(水) 17:25:41.36ID:???0900nobodyさん
2011/11/02(水) 18:59:40.99ID:???ググってもこれといった情報なくてtriggerで強制的に叩いてるんだけどみんなどうしてる?
0904nobodyさん
2011/11/02(水) 23:49:38.53ID:???0905nobodyさん
2011/11/03(木) 01:28:26.81ID:???0906nobodyさん
2011/11/03(木) 01:41:16.27ID:???0907nobodyさん
2011/11/03(木) 01:59:59.87ID:???0908nobodyさん
2011/11/03(木) 02:47:51.32ID:BQfojvD+Cookbookもまだ英語だし。ブログとかでも情報皆無だし。
これから開発で使いたいんだけどどうすればいい?
0910nobodyさん
2011/11/03(木) 03:28:44.79ID:???待ってたってどうにもならんから英語で読めばいいんじゃないすかね
英語ドキュメント恐怖症を直せば自分のためにもなるし読める情報も増えるし一石二鳥。
0912nobodyさん
2011/11/03(木) 10:39:33.71ID:???0913nobodyさん
2011/11/03(木) 11:18:26.53ID:???あとSessionも
0914nobodyさん
2011/11/03(木) 11:29:31.40ID:???だましだまし使ってるけど
0916nobodyさん
2011/11/03(木) 15:42:44.18ID:???0917nobodyさん
2011/11/03(木) 15:52:36.86ID:???なかみを呼ぼうとするとPHP Fatal error: Call to undefined method がでちゃうんですけど
0919nobodyさん
2011/11/03(木) 21:49:36.49ID:???おいてるんだけどAppController.phpの中にあるbeforeFilterとか読まれてない気がするんだ
hoge()みたいに適当に書くとコントローラからアクセスできているんだけどなんでだろ
0920nobodyさん
2011/11/03(木) 23:15:17.44ID:???他のアクションは読まれてるのにbeforeFilterだけがダメなら何かそこの書き方が間違ってるような気がするな
beforeRenderとかafterFilterは動いてるの?
0921nobodyさん
2011/11/03(木) 23:26:01.11ID:???あれってもう解決されてるんだろうか?
0922nobodyさん
2011/11/04(金) 00:49:12.20ID:???早いな
0923粕屋
2011/11/04(金) 04:05:53.65ID:NGbuW+zfレス数が900を超えています。1000を超えると表示できなくなるよ。