トップページ⇒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
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にあるはずなんだが、ないか?
0512nobodyさん2010/09/10(金) 14:06:03ID:???
>>509
なんで、 .html なの? sql_dump.ctp だと思うが
拡張子変えてる?
0513nobodyさん2010/09/10(金) 14:51:11ID:???
第三者だが、>>509に書いてあるコードを今開発しているビューに貼り付けたら
普通にSQL文のテーブルが出力されたけどな。
やっぱ、元ファイルの拡張子をhtmlにしたのが原因だと思う。
0514nobodyさん2010/09/10(金) 15:15:18ID:???
いや、元ファイルじゃなくて、viewの拡張子をhtmlにしてるんじゃ?
こんな弊害あるのね
0515nobodyさん2010/09/10(金) 15:30:29ID:???
こうしたら読み込めたりしないかな?やってないけど
<?php echo $this->element('sql_dump.ctp'); ?>
0516nobodyさん2010/09/10(金) 15:57:09ID:???
>>515
sql_dump.ctp.html を読みに行きそう
0517nobodyさん2010/09/10(金) 16:16:11ID:???
話がちょっとずれるが、viewの拡張子をphpに変更したとき、
「view.php」というviewファイルを扱おうとしたら動作がおかしくなった。
0518nobodyさん2010/09/10(金) 16:30:54ID:???
>>515
foreach ($paths as $path) {
if (file_exists($path . 'elements' . DS . $name . $this->ext)) {
$file = $path . 'elements' . DS . $name . $this->ext;
break;
}
}

ってなってるから無理

cssだと拡張子ついててもOKなのに、こういう統一性がないところが嫌だな
0519nobodyさん2010/09/10(金) 23:46:45ID:???
>>511-
cake/views/elementsのほうにありました。app/views/elementsの方見てた。
解決しました、アリが東
0520nobodyさん2010/09/11(土) 23:25:50ID:7mKdJQTU
appディレクトリを2つ用意した場合で
それぞれのapp内で同じコンポーネントやヘルパーを使いたいとします。

その場合、どちらかをrequireして読み込む方法しかないのでしょうか?
0521nobodyさん2010/09/11(土) 23:39:30ID:???
通常のappとそれをコピーしてapp_adminにしてURLで使い分ける方法教えてください
0522nobodyさん2010/09/11(土) 23:42:40ID:???
なんでそんなことしなきゃいけないんだ
0523nobodyさん2010/09/11(土) 23:43:36ID:7mKdJQTU
自己レスです。bootstrap.phpに以下のように共通ディレクトリを指定して
そこにファイルを置くと、app内に置かなくても読み込まれました。
App::build(array(
'helpers' =>array(ROOT . DS . 'common' . DS .'helpers' . DS),
));

こういう便利な機能があったんですね。もう少しマニュアル読んで勉強します。
0524nobodyさん2010/09/11(土) 23:57:14ID:???
それURLで使い分けれてなくね?
0525nobodyさん2010/09/11(土) 23:58:07ID:???
その質問は>>521だろ?
0526nobodyさん2010/09/12(日) 00:00:49ID:???
別人だったんだ・・・
0527nobodyさん2010/09/12(日) 00:53:23ID:???
>>522
PHPで作る携帯サイトって本を買ったんだけど、
appフォルダとapp_adminをドメインで分けて作っていっくことを前提で解説してあったんで
0528nobodyさん2010/09/12(日) 00:58:08ID:???
>>527
別の方法考えな。
appとapp_adminを分けるってことはそれぞれのフォルダにいくつか同じファイルが存在するってことだろ?
バグ生み出す原因を作るだけだぞ
0529nobodyさん2010/09/12(日) 01:00:58ID:???
>>527
ようするに別アプリケーションなわけですよ。
てかその本ヒドイ予感
05305282010/09/12(日) 01:30:51ID:???
>>527
その本持ってたわw
やり方は本に書いてあるから、よく読め

>>529
前半部分しか読んでないけど、新たな発見があって悪くはなかった。
p118の表とかCakeの流れが分かりやすく書かれてたし。
0531nobodyさん2010/09/12(日) 02:32:07ID:???
俺もその本持ってて公開用・管理用とで分けてるけど、何がいけないんだ?
同じコントローラーでも公開・管理で仕様が異なるんだから
バグの原因にならないと思うけど。

むしろ、1つのファイルに長々とコードを書いていくことが
バグや見落としの原因になるぞ。
0532nobodyさん2010/09/12(日) 02:53:28ID:???
>>531
あぁスマン>>528は本見る前に書いたレスだから忘れてくれ。

同じコードがあちこちに散在しているプロジェクトは修正忘れが起きやすくバグをうむ。
だから、>>528みたいな忠告をしたんだけど、ソース見てみたら、
共通なのはapp_model.phpとか、あまりないのな。
0533nobodyさん2010/09/12(日) 03:16:47ID:???
>>531
ついでだから、こちらも質問させてくれ。

1つの関数に長々とってなら分かるけど、
1つのファイルに長々とコードを書いていくとバグの原因になるのはなんで?
0534nobodyさん2010/09/12(日) 03:23:34ID:???
てか共通な部分はどうするの?
モデルなんて一緒じゃないの?
0535nobodyさん2010/09/12(日) 03:58:40ID:???
自分はやんない派だけど検索パスの追加かなー?
0536nobodyさん2010/09/12(日) 04:35:47ID:???
あ、そっか
views,controllersは別々で問題ない。
configあたりはほぼ同じ内容でコピペなんだろうね

でもなんだかんだで同じ処理って出てくるよなぁ
メンテナンス性は落ちそうに思うんだけどな
■ このスレッドは過去ログ倉庫に格納されています