トップページphp
1001コメント304KB

【PHP】フレームワーク CakePHP 9ホール目【v1.3】

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2010/07/23(金) 09:13:26ID:v3m09M9u
CakePHPは、Ruby on Railsの概念の多くを取り入れた、Rails流の高速開発とPHPの機動性を兼ね備えたフレームワークです
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
0412nobodyさん2010/09/07(火) 14:51:00ID:???
cakePHPのマニュアルを読むのだけどサイト遅すぎでイライラする
ローカルにダウンロードしたいけどそういうのもナシ
0413nobodyさん2010/09/07(火) 14:56:03ID:???
>>412
http://book.cakephp.org/ja/complete/876/The-Manual
これ保存せい
0414nobodyさん2010/09/07(火) 16:03:15ID:???
>>411
せっかく翻訳してくれてる人達には悪いけど、日本版にはそういう傾向があるね。
英語版見た方がいいよ。
0415nobodyさん2010/09/07(火) 16:07:42ID:???
英語版:Cookbook
日本語版:Cakebook

何の誤訳だよ
0416nobodyさん2010/09/07(火) 16:13:54ID:???
英語版みてもコードは解るけど、説明もみたいじゃない。
けど、英語読めないから辛い・・・
0417nobodyさん2010/09/07(火) 16:19:18ID:???
プログラマで英語が読めないって、かなり致命的
0418nobodyさん2010/09/07(火) 16:20:08ID:???
>>416
お前は俺の後輩か!
"読めないから"じゃなく、読めるとこだけでも読む
0419nobodyさん2010/09/07(火) 16:35:15ID:???
>>416
英語の教科書やテストみたいになんの興味もないヒネったつまらん英文ってわけでもないし
別にたいして難しく書いてあるわけじゃあないよ。
いずれにしてもAPIまで読んで行く時にそっちは翻訳されてないし。

いい機会なんだからめんどくさがらずにがんばれ。
0420nobodyさん2010/09/07(火) 16:36:45ID:???
俺いつも英文が出ると、単語を掻い摘んで読んでいくか
エキサイト翻訳にかけるか、Googleツールバーで一括翻訳か
どれかしてる。それである程度意味はわかるけど、英語が苦手なのは確かだ。
0421nobodyさん2010/09/07(火) 16:55:31ID:???
まあもちろんパッと見て「わからない〜〜」ってなるのは仕方ないけどさ。ネイティブじゃないんだし。
でもじっくり読んでたら頭の中が英語脳みたいに切り替わる瞬間みたいなのがあって面白い。
0422nobodyさん2010/09/07(火) 17:56:23ID:7yk3+8B4
フォームヘルパーで日付の「年」のみを選択出来るようにしたいのですが、
どうすればいいのでしょうか?
$form->input('year', array('type' => 'select', 'options' => $options));
として、自前で$optionsの内容を作成する方法しかないのでしょうか?
0423nobodyさん2010/09/07(火) 19:52:56ID:???
>>422
$form->year() じゃ駄目なのかい?
http://api12.cakephp.org/class/form-helper#method-FormHelperyear
04244222010/09/07(火) 20:03:39ID:???
>>423
出来ました。ありがとうございます。
0425nobodyさん2010/09/07(火) 20:10:54ID:???
cakephpはもう1.3が主流ですか?
0426nobodyさん2010/09/07(火) 20:53:13ID:???
既存サイトの手直しなんかでマイグレーションに苦労する。ってんでもなければ1.3でしょ。
0427nobodyさん2010/09/07(火) 21:15:31ID:???
マイグレーションってなんですか?
0428nobodyさん2010/09/07(火) 22:51:00ID:???
PHP質問スレで流れてしまったので、もしよければ教えてくださいませ。

cakePHPなどのMVCモデルで、何行ぐらいのコードになったら別個のファンクションに
するべきか悩んでおります。

コントローラーにはビジネスロジックを書かずに、モデルにどんどん書いています。
すると、今度はモデル内のコードがごちゃごちゃしてきました。

繰り返しをするコードは別個のファンクションにしていますが、単純に、モデル内における
ファンクション内のコード数が長くなりすぎた場合、どの程度で別のファンクションに分けるべきでしょうか?
0429nobodyさん2010/09/07(火) 22:58:24ID:???
>>428
なんで行数?わけわからn

一連のロジックのうち、他で再利用する可能性が高いものはメソッド化するかな
行数なんか考えたこともないわ
04304282010/09/07(火) 23:10:34ID:???
>>429

ありがとうございます。

再利用しそうにないコードがずらずらと並んで、結構
長いファンクションになってしまったもので。。
0431nobodyさん2010/09/07(火) 23:31:46ID:???
自分の中で「三回(三箇所)以上で使う場合はまとめる」
とかしたらどうだ?
モデルにまとめるなら、app_controllerとか作ってさ。
俺はもっと細かく、member_controllerとかコンテンツ毎に分けてるけど。
0432nobodyさん2010/09/07(火) 23:43:39ID:???
お前は何の話をしてるんだ?
あと3回ってなんだ3回って。なんで3回だ2回ならコピペするのか?
0433nobodyさん2010/09/07(火) 23:50:16ID:???
自分で決めりゃいいじゃん。人に聞かないと判断つかないんだから。
それを言いたいのに、「どういうこと?」っていちいち聞き返すなよ。めんどくさい。
0434nobodyさん2010/09/07(火) 23:56:03ID:???
処理が長くなりすぎて、ひとつのアクション中での流れが見えなくなったってことなんじゃない?
折りたたみできるエディタ使うか、使い回ししないやつでもメソッド切り分けるかしたら?
0435nobodyさん2010/09/07(火) 23:56:13ID:???
このおにーちゃん何いってんの?
急にキレてるけど頭おかしいの?
0436nobodyさん2010/09/07(火) 23:57:35ID:???
コンポーネント内で別のコンポーネントの関数を呼ぶにはどうしたらいいですか?
親子関係は定義したくないです。1個関数を呼びたいだけで、それ以外に関係がないので
0437nobodyさん2010/09/08(水) 00:03:20ID:???
親子にしないで単純にvar $componentsでいけるんじゃないの?
http://www.happytrap.jp/blogs/2009/03/23/793/
0438nobodyさん2010/09/08(水) 00:15:59ID:???
>>437
dです
あとモデルからもその関数が必要になってしまった。
コントローラをモデルに渡してそれ経由でという強引なやり方以外にありますでしょうか?
0439nobodyさん2010/09/08(水) 00:18:47ID:???
あ、コンポーネントをモデルに渡せばいいのだろうか
0440nobodyさん2010/09/08(水) 00:25:38ID:???
根本的にいろいろぐちゃぐちゃ
0441nobodyさん2010/09/08(水) 02:30:02ID:???
コントローラからコンポーネントを引数にモデルの関数呼んだら
うまくいきました
同じ処理をあちこち書きたくないからしょうがない
0442nobodyさん2010/09/08(水) 02:48:11ID:???
あほはほっとこうぜ
0443nobodyさん2010/09/08(水) 02:50:03ID:???
いいから死んで詫びろよ
クズが
0444nobodyさん2010/09/08(水) 02:56:13ID:???
cakeってMVCどこでも使う処理の置き場に困るよね
0445nobodyさん2010/09/08(水) 03:17:15ID:???
そんなことないよ
0446nobodyさん2010/09/08(水) 03:23:00ID:???
一人うざいのがいるな
0447nobodyさん2010/09/08(水) 03:46:25ID:???
>コントローラからコンポーネントを引数にモデルの関数呼んだ
もっかいMVC勉強してこい

>cakeってMVCどこでも使う処理の置き場に困るよね
vendorsでいいだろ

>>446
お前だ
0448nobodyさん2010/09/08(水) 05:26:59ID:???
関数化するときのコツは、名前のつけられる処理群は関数にするってのがやりやすい。
あとは二回以上使いまわしたら関数にするとか。
0449nobodyさん2010/09/08(水) 12:13:43ID:???
オープンソースのライブラリで、vendorsに入れると
表示が反映されない物がある。おそらく、参照先が同階層になっているんだろう。

その場合、ライブラリ側のソースをいじっって、定数を入れたりして
多階層対応にするか、そのままにして、Cake側で工夫するか。

俺は後者を選んだ。オープンソースとはいえ、むやみに手を加えるべきじゃない。
0450nobodyさん2010/09/08(水) 13:05:01ID:???
表示が反映されない
参照先が同階層
多階層対応

何言ってるのか全く分からない
0451nobodyさん2010/09/08(水) 13:07:08ID:???
頭悪いんだな
0452nobodyさん2010/09/08(水) 13:16:38ID:???
./
dirname(__FILE__)
0453nobodyさん2010/09/08(水) 14:01:49ID:???
ずいぶん荒れてるな

0454nobodyさん2010/09/08(水) 14:30:26ID:???
荒らしてるのは一人だろ
0455nobodyさん2010/09/08(水) 16:14:15ID:???
だな
0456nobodyさん2010/09/08(水) 16:37:51ID:???
うざいとか荒らしとか言って人の意見聞かなけりゃいから成長しないんだよ。
0457nobodyさん2010/09/08(水) 16:40:32ID:???
定数定義君(笑)がでてきたあたりから回答がひどいことになってるよね
中途半端な知識で人に教えないほうがいいとおもうけどなー
0458nobodyさん2010/09/08(水) 17:18:50ID:+2USXYbV
モデルにIDの存在チェックを入れて、バリデーションしようとしているのですが、
どういう値でも全てエラー扱いになります。
どこを直せばいいのでしょうか?アドバイスをいただければと思います。

var $validate = array(
'user_id' => array(
array(
'rule' => 'checkUserId',
'message' => 'IDが存在しません',
)
));

function checkUserId()
{
$data = $this->User->findById($this->data['Profile']['user_id']);
if(!$data){
return false;
}
}
0459nobodyさん2010/09/08(水) 17:22:28ID:???
return true; してないとか。
0460nobodyさん2010/09/08(水) 17:39:15ID:???
>>458
$this->findById()
0461nobodyさん2010/09/08(水) 17:51:58ID:???
>>457
回答も回答だが、質問も458みたいに酷いしな
オープンソースなんだからソース読んで自力で解決しろよと思う
0462nobodyさん2010/09/08(水) 18:00:27ID:???
>>461
どう酷いのか言わないと同じことの繰り返しだよ
04634582010/09/08(水) 18:12:16ID:???
>>459
return trueが抜けてました・・。酷い質問で済みませんでした。
0464nobodyさん2010/09/08(水) 18:12:31ID:???
>>462
>オープンソースなんだからソース読んで自力で解決しろよと思う

と書いてあるわけだが。
ソース読めば、なんですべてエラー扱いになるか理解できるはず。
それを怠って人に頼っている時点で酷いと言ってる。
0465nobodyさん2010/09/08(水) 18:14:01ID:???
>>461
じゃ聞くが、458のような書き方ってソースの問題か?
単に構築上での質問だと思うが。

そしてそれすらも自分で考えろって言うなら、
>>1で質問受け付けないようにしないとな。
0466nobodyさん2010/09/08(水) 18:28:54ID:???
>>465
前半、なにを言いたいのかよく分からないが、ソース読めば
trueを返さなければいけないって分かるだろ?

>>1で質問受け付けないようにしないとな。
それ賛成

>>463
勉強する気があるならmodel.phpのinvalidFieldsの中を読んでみ
0467nobodyさん2010/09/08(水) 18:29:06ID:???
1.3だけど、findAllは使っちゃいけないの?
ぐぐると使用例がいっぱい出てくるけど、使ったらエラーが出た
Warning (512): SQL Error: 1064: You have an error in your SQL syntax; check the manual
that corresponds to your MySQL server version for the right syntax to use near 'findAll'
at line 1 [CORE/cake/libs/model/datasources/dbo_source.php, line 673]
0468nobodyさん2010/09/08(水) 18:29:42ID:???
オープンソースは自力で問題を解決する物φ( ̄ー ̄ )メモメモ
0469nobodyさん2010/09/08(水) 18:30:42ID:???
>>467
461さんの一存でこのスレで質問は受け付けられません。お帰り下さい。
0470nobodyさん2010/09/08(水) 18:33:02ID:???
>>467
findAllはfind('all')になった、詳しくはググれ
04714612010/09/08(水) 18:33:57ID:???
>>468
理想を言えばマニュアルやAPI見るだけで理解できればいいんだけどね。
0472nobodyさん2010/09/08(水) 18:38:27ID:???
どこのスレでも461みたいな奴っているな
嫌なら答えなければいいのに。なにかお前に対して迷惑かかるのかよ
0473nobodyさん2010/09/08(水) 18:43:02ID:???
find('all')に変更して事故解決しました
0474nobodyさん2010/09/08(水) 20:04:42ID:???
>>473
質問のタイミングが悪かったねw
0475nobodyさん2010/09/08(水) 20:24:25ID:???
オープンソースのスレはもう必要なさそうだな
0476nobodyさん2010/09/08(水) 22:09:02ID:???
>>472
458のためを思って言ってるんだけどね。
あのくらいの問題を自分で解決できないんじゃ、いつまでたっても成長しないだろ?
04774702010/09/08(水) 22:09:49ID:???
>>473
俺のおかげで解決って言えええええええ!
0478nobodyさん2010/09/08(水) 23:46:57ID:???
>>477
あなたのおかげで解決しました
0479nobodyさん2010/09/09(木) 02:03:12ID:???
お礼強要すんなw
0480nobodyさん2010/09/09(木) 02:05:46ID:???
お礼は3行以上でお願いします。
0481nobodyさん2010/09/09(木) 02:56:55ID:???
さらに増やすなw
0482nobodyさん2010/09/09(木) 03:00:37ID:???
お礼は千行以上でお願いします。
0483nobodyさん2010/09/09(木) 10:33:38ID:???
マニュアルのわかりやすいとこに答えが載ってるような質問もどうかと思うけどな
しかも回答貰ってんのに自己解決とかいっちゃってるし
0484nobodyさん2010/09/09(木) 10:41:38ID:???
なりすましで荒らす奴がいるから質問はID出すのが普通じゃね
0485nobodyさん2010/09/09(木) 11:27:23ID:???
文句や煽りレスをするよりわかるなら教えてやれば良いのにっていつも思う。
自分が知ってて簡単に答えられそうで、尚かつめんどくさくないなら。
面倒な奴は無視すれば良いんだよ。

誰かに教える事で不利益を被るのか?自分もググって他人に教えてもらうのに。
0486nobodyさん2010/09/09(木) 11:30:37ID:???
>>484
なりすましで荒らすやつより、スレが上がって変なやつわくことのほうがはるかに多いよ?
0487nobodyさん2010/09/09(木) 12:25:37ID:???
じゃあトリつければいいよ
とにかくなりすましができる環境で質問してあれは俺じゃないとか
実はあれ頴田の俺でしたみたいな感じになるのが荒れる最大の原因だから
0488nobodyさん2010/09/09(木) 12:31:13ID:???
いやそれが最大の原因ではないよ
0489nobodyさん2010/09/09(木) 13:20:50ID:???
>>487
お前馬鹿か?それかネットやったことないとか?

荒れるのは十中八九「誰かが構うから」だ。構わず無視しとけばいいだろ。
心底教えて欲しいと思う奴はID出すし、騙られるのが嫌な奴もそうする。
0490nobodyさん2010/09/09(木) 13:22:33ID:???
昨日から、>>487みたいな「俺ルール」押しつける奴は何がしたいんだ。
いや、おそらく同一人物かなw
0491nobodyさん2010/09/09(木) 13:39:32ID:???
構わなくても連投してたPerl忍者とかいたじゃん
0492nobodyさん2010/09/09(木) 14:04:42ID:???
いたからなんだ?
0493nobodyさん2010/09/09(木) 15:55:22ID:???
>>483
レス見る前に自己解決したんじゃないの?よくあること
0494nobodyさん2010/09/09(木) 16:05:49ID:???
>>493
仮にそうだとしても、俺なら「自己解決しました」なんて、書けない
レスくれた人に申し訳ないわ
0495nobodyさん2010/09/09(木) 16:07:57ID:???
どうでもいいよfind('all')くらい。きにすな
0496nobodyさん2010/09/09(木) 16:09:51ID:???
>>494
いやだからレス見る前に書き込んだんだろ
0497nobodyさん2010/09/09(木) 16:15:27ID:???
>>496
うん。論外だろ、それ
0498nobodyさん2010/09/09(木) 16:25:31ID:???
find('all');すごいです!!ありがとうございます!!

他所でやれ
0499nobodyさん2010/09/09(木) 16:30:25ID:???
マジで自称アングラサイトの「俺は三行まで」を求める馬鹿がいるとは・・・
0500nobodyさん2010/09/09(木) 16:31:11ID:???
俺は三行までってなんだよwww
0501nobodyさん2010/09/09(木) 17:26:36ID:???
さんぎょう で変換しても三行が出てこないgoogleIME
0502nobodyさん2010/09/09(木) 17:43:47ID:???
どうでもいいがぐぐったら、findAllで解説しているサイトが多くてうざいな
Cakeは情報が多くて助かるが多すぎるのもあれだな
0503nobodyさん2010/09/09(木) 17:48:27ID:???
仕様をころころ変えるCakeが悪いと思うが
0504nobodyさん2010/09/09(木) 17:52:06ID:???
findAllで良かったろ!なにしてんだ
0505底辺2010/09/09(木) 21:47:14ID:???
>>405
どういうこと?
爆発の恐れって事?
0506nobodyさん2010/09/09(木) 21:50:33ID:???
>>505
http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&rlz=1T4GPTB_jaJP291JP291&q=bom
0507nobodyさん2010/09/10(金) 00:50:01ID:???
BOMがついて困ってる人はいたけど
BOMつけようとする奴ははじめてみた
0508nobodyさん2010/09/10(金) 00:51:02ID:???
爆発するから気をつけないとな
0509nobodyさん2010/09/10(金) 12:38:20ID:???
1.3で、デバッグ用にSQL文を表示する方法を教えてください。
ぐぐったら、<?php echo $this->element('sql_dump'); ?>
でいけるとすぐ出てきたのですが、やってみたら
Not Found: /xxx/xxxxx/app/views/elements/sql_dump.html;
とエラーになります。
elements/sql_dump.htmlがないみたいなんですがどこかで入手できるのでしょうか?
0510nobodyさん2010/09/10(金) 13:46:37ID:???
>>509
>>483
0511nobodyさん2010/09/10(金) 14:00:06ID:???
>>509
あぁすまん、よく読んでなかったわ。
sql_dump.ctpは/xxx/xxxxx/cake/views/elementsにあるはずなんだが、ないか?
■ このスレッドは過去ログ倉庫に格納されています