トップページphp
995コメント290KB

【PHP】フレームワーク CakePHP 13ホール目【v2.0】

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2011/11/09(水) 01:05:10.60ID:???
CakePHPは、Ruby on Railsの概念の多くを取り入れた、Rails流の高速開発とPHPの機動性を兼ね備えたフレームワークです
CakePHPから派生したLithium(li3)も専スレできるまではここでどうぞ
質問するときはCakePHPのバージョンを書きましょう

※他フレームワークとの比較等はスレ違いです
テンプレは>>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 12ホール目【笑】
http://hibari.2ch.net/test/read.cgi/php/1309505626/
0525nobodyさん2012/01/27(金) 13:56:20.77ID:???
なんで配列は嫌なの?
0526nobodyさん2012/01/27(金) 14:58:32.50ID:???
配列嫌ならRoR行こうぜ
0527nobodyさん2012/01/27(金) 15:19:00.44ID:???
>>525
たとえば、ビューがifだらけになっちゃうことなどです。
バーチャルフィールドである程度は対処できますが、
限界がありますし・・・
0528nobodyさん2012/01/27(金) 19:36:57.17ID:???
PHPUnit3.6インストールしたら、debug()とか出力されなくて
マニュアルを確認すると
「TipAll output is swallowed when using PHPUnit 3.6+. Add the --debug modifier if using the CLI or add &debug=1 to the url if using the web runner to display output.」
test.phpで走らせてるので、URLに&debug=1をつけたのですが
何も出力されません。わかる人いたら教えてください。

環境
CakePHP 2.0.5
PHPUnit 3.6.9
0529nobodyさん2012/01/27(金) 20:38:59.59ID:???
>>527
そんなこと無いけど。
どういう場面でviewがifだらけになるのか、想像つかん
0530nobodyさん2012/01/27(金) 21:51:47.71ID:???
1.3.14ですが、webrootの中にフォルダを作り、
同名のコントローラにアクセスすると、そのフォルダを読みに行ってしまいます。


/webroot
└/test
└index.php

の場合、http://example.com/test/
でアクセスすると、/webroot/test/フォルダ内のindexファイルを探す

同名のフォルダがあった場合、コントローラーを読み出すようにするには
どうすればいいのでしょうか?
0531nobodyさん2012/01/27(金) 22:30:54.56ID:???
>>524
配列が嫌って、PHP全否定じゃないですかw
0532nobodyさん2012/01/27(金) 23:47:52.29ID:???
>>530
仕様
別名にするか.htaccessを書き換えるしかない
0533nobodyさん2012/01/28(土) 16:14:55.65ID:???
sqliteってすごく便利だったのね
0534nobodyさん2012/01/29(日) 02:29:16.25ID:???
ページネーションのソートの際に、対象フィールドのリンクには
<a class="desc" のようなclass名が付くと思うのですが、
1.3.14では付きません。なにか設定方法が変わったのでしょうか?
0535nobodyさん2012/01/29(日) 20:34:45.68ID:???
1 -> 2 -> 3
と遷移する画面があるとして、1でPOSTされたdataをそのまま3で使いたい時
どうすればいいかね?
2でinput hiddenで埋め込むしかないの?
0536nobodyさん2012/01/30(月) 01:35:56.87ID:???
>>535
これどうだい?
https://github.com/jaredhoyt/cakephp-wizard/
0537nobodyさん2012/01/31(火) 20:54:05.78ID:???
なんで2.0になってから404 Not Foundもapp/tmp/error.logに記録されるようになったん?
ボットの適当なアクセスでerror.logが更新されまくって困るんだが
0538nobodyさん2012/01/31(火) 21:27:48.91ID:???
>>523
今、2.0系で開発してるんだが、2.1系とどれくらい互換性あるのかね
2.1まで待てばよかったかなぁ・・・
0539nobodyさん2012/02/01(水) 14:03:22.66ID:???
find("all")で全レコードをviewで一覧出力したあとで,
リンクをクリックすると絞り込み検索して,結果を一覧表示させる方法がわからないです。

全レコードの出力はindexアクションなんだけど,
絞込検索の方は,また別にアクションを書く必要があるの?
それともindexアクションの中で絞り込むことってできるの?
0540nobodyさん2012/02/01(水) 14:31:02.84ID:???
最初の一覧表示を「全部が含まれる絞り込み」と考えればコードは一つ。
0541nobodyさん2012/02/01(水) 18:11:27.88ID:???
>>538
2.1は2.0完全互換なので問題なく動くはず
ただ2.1でも重要な部分のアップデートがあるから、その辺はどちらにせよそのうち直すことになりそうだけど
0542sage2012/02/03(金) 01:46:58.38ID:???
Roadmaを読むと3.0でネームスペースの導入とオブジェクトを返す仕様にするとあるな。
0543sage2012/02/03(金) 01:48:56.31ID:???
RoadmaでなくてRoadmapな!
0544nobodyさん2012/02/03(金) 03:11:07.37ID:???
× Roadma
○ Readme

スペルは正しく書きましょう
0545nobodyさん2012/02/06(月) 21:53:18.73ID:???
CakePHPつかえば彼女できるの
0546nobodyさん2012/02/07(火) 02:09:02.39ID:???
ちいたん Yiiつかってまた戻ってきた
やっぱり人口が多いのが一番だね英語知らないから
0547nobodyさん2012/02/07(火) 14:09:10.01ID:???
ちいたんもYiiもcodeIgniterも
俺的にはオレオレと変わらないと思ってる。

多少動作が重くても、扱える人口が多いことに意味がある。
0548nobodyさん2012/02/07(火) 19:26:51.77ID:???
>>547
明らかにYiiはCakePHPより優れてるよ
日本人の使用者人口が増えれば日本語のリソースも増えてくると思うし
英語がダメな人はもう少し待つほうがいいかもな
0549nobodyさん2012/02/07(火) 19:36:59.22ID:???
>>548
本当にYiiが優れてるのなら、もっとブログで情報発信したりスレに書き込んだりしてくれよ
軽く触った感じではCakePHPに次いでいい感じだったけど、ユーザー少なそうで本腰入れる気になれない
ユーザーいないから情報出なくて、情報出ないからユーザー増えないという悪循環にはまってる感じがする
0550nobodyさん2012/02/07(火) 20:08:39.28ID:???
で、自分しか使ってないなら=オレオレと変わらないんじゃね?
って考えになるんだよな。
0551nobodyさん2012/02/07(火) 22:20:42.14ID:???
>>549
>ユーザーいないから情報出なくて、
日本語で情報探すとそう感じるけど、
英語で探すとけっこう出てくるよ。
てかドキュメントがしっかりしてるからあんま必要ないけどね。

まぁ世界全体でだけど、こんな感じの伸び率
http://www.google.co.jp/trends/?q=cakephp,codeigniter,yii&ctab=0&geo=all&date=all&sort=0
YiiがCakePHPやCodeigniterと差を縮めていってる
CakePHPに関しては減ってる

日本でもだんだん増えるよ、確実に
ブログはたまに書いてる
0552nobodyさん2012/02/07(火) 22:31:26.34ID:???
頑張って俺様のためにドキュメントを増やし給え
0553nobodyさん2012/02/07(火) 23:03:57.00ID:???
>>552
おk
お前もせいぜい英語勉強しろよw
0554nobodyさん2012/02/07(火) 23:28:06.02ID:???
未だに英語がわからん奴とかいるわけがない
都市伝説だろ
0555nobodyさん2012/02/07(火) 23:37:30.16ID:???
明日電車に乗ったら隣の席の人に英語で話しかけてみてください
0556nobodyさん2012/02/08(水) 00:23:47.88ID:???
英語が分からんわけではないが、日本語情報が無いと裾野が広がらないと思う
0557nobodyさん2012/02/08(水) 00:28:52.97ID:???
はやくして
0558nobodyさん2012/02/08(水) 01:22:28.31ID:???
英語わかんねえんだよ
わかればこんなFW使わねえよ
0559nobodyさん2012/02/08(水) 01:28:31.64ID:???
こうやって技術者格差って広がっていくんだな
0560nobodyさん2012/02/08(水) 02:25:56.05ID:???
cakeが一番わかり易い
0561nobodyさん2012/02/08(水) 02:43:04.37ID:???
今の時代、英語と中国語出来れば、どの職業でも食いっぱぐれないだろうな
0562nobodyさん2012/02/08(水) 04:51:19.10ID:???
そんなことされたら警察呼ぶわ
0563nobodyさん2012/02/08(水) 10:25:56.72ID:???
英語ができればこんなスレにはいない
0564nobodyさん2012/02/08(水) 11:00:04.88ID:???
英語できるんだけど、どこに行けばいいの?
0565nobodyさん2012/02/08(水) 11:28:41.60ID:???
英語でおk
0566nobodyさん2012/02/08(水) 12:08:44.04ID:???
which site is the best discussion forum for cakephp? give me urls.
0567nobodyさん2012/02/08(水) 12:11:29.75ID:???
Hi, Guys!
0568nobodyさん2012/02/08(水) 12:14:52.18ID:???
what's up?
0569nobodyさん2012/02/08(水) 12:15:51.13ID:???
I'm stealth marketing now.
0570nobodyさん2012/02/08(水) 12:18:45.15ID:???
Oh really ?
0571nobodyさん2012/02/08(水) 12:19:03.41ID:FLeGKhAC
a peace of cake!
0572nobodyさん2012/02/08(水) 12:22:28.38ID:???
Fack YOU 板違いだにょ
0573nobodyさん2012/02/08(水) 12:40:57.21ID:???
lol
0574nobodyさん2012/02/08(水) 15:48:30.68ID:???
>>572
oh... miss spell
repeat after me
"Fuck You"
0575nobodyさん2012/02/08(水) 16:25:40.59ID:???
thank you,good gay!
0576nobodyさん2012/02/08(水) 16:54:59.72ID:???
>>574
Fuck you
0577nobodyさん2012/02/08(水) 17:01:40.67ID:???
O mae mo naa
0578nobodyさん2012/02/08(水) 18:10:15.72ID:???
your "CakePHP" is common file, on libs or vendors?
05795722012/02/08(水) 18:39:58.51ID:???
小学生かこいつら
0580nobodyさん2012/02/08(水) 21:36:31.59ID:???
>>564
日本で専門色翻訳になれば儲かる。
0581nobodyさん2012/02/08(水) 21:44:51.18ID:???
>>578
if you use 12.x, on vendors.
if you use 2.0.x on libs.
0582nobodyさん2012/02/09(木) 13:37:44.09ID:???
フォームヘルパーの使い方について質問です。

○商品A   ○商品B
■■■    ■■■

○がラジオボタンで、■が商品の画像だとします。
フォームヘルパーのoptionsに配列で選択肢を指定したら
横並びの入力項目が出来るので、
画像付きのこういった表現が出来ません。
どうすればいいのでしょうか?
0583nobodyさん2012/02/09(木) 14:57:42.21ID:???
>>582
配列で一気にラジオボタン出すんじゃなくて、別々に出せばいいんじゃないの
0584nobodyさん2012/02/09(木) 16:32:37.53ID:???
>>583
いけました。仕様を勘違いしていました。ありがとうございます。
0585nobodyさん2012/02/10(金) 12:20:32.03ID:???
質問です
pagenatorのhasNextのような関数を、コントローラー内で呼ぶにはどうすれば良いですか?
ぐぐってもビューでヘルパーを呼び出す方法しか出てきません
コントローラー内で、次のページがあるかどうかで分岐する処理が書きたいです

1.3です
0586nobodyさん2012/02/10(金) 18:01:43.96ID:???
質問です

cakephp2.0.6 php5.3.6 apache2.2.17
という環境でcakephpをインストールし接続してみたのですが

Missing Method in AppController

Error: The action webroot is not defined in controller AppController

Error: Create AppController::webroot() in file: app\Controller\AppController.php.

このような文がでて接続がうまくいきません。どなたかご教授お願いします。

(cakephp1.3だとちゃんとRelease Notes for CakePHP 1.3.14に表示されます。)
0587nobodyさん2012/02/10(金) 18:21:21.51ID:???
エラーメッセージを良く読め
0588nobodyさん2012/02/10(金) 18:52:31.16ID:???
>>587
すみません、いろいろとググったのですがみつからず困ってました。

AppControllerにアクションwebrootがみつからない
ファイルapp\Controller\AppController.php作ってwebroot()を作れ

っと言われてると思うのですが、実際に作るとphpでのエラーがでてしまいます。

Fatal error: Class 'AppController' not found

申し訳ありませんが、ヒント頂ければと思います。
0589nobodyさん2012/02/10(金) 20:19:58.49ID:???
>>588
app\Controller\AppController.php
には正確にはどう書いた?

とうか、そもそも、どういうディレクトリにインストールして
どこにアクセスしてる?
0590nobodyさん2012/02/10(金) 20:55:32.66ID:???
httpd.confの設定がおかしいと想像。

document rootと、http側のrootが一致してないと見た。
0591nobodyさん2012/02/10(金) 21:02:16.73ID:???
webrootが正常に読み込めてないな。
そのあとのエラー的に、>>590の言うとおりパスがおかしいんじゃないかと。
あとhttpd.conf内でmod_rewriteは設定してるよな?
まずはhttpdの設定を見直すよろし。
0592nobodyさん2012/02/10(金) 21:02:49.14ID:???
>>589

中には表示されていた
<?php
class AppController extends AppController {
public function webroot() {
}
}

?>←これはなかったので付け足しました

と書きました
ディレクトリはC:\Users\fruit\Desktop\www\sns\cake\2.0\app\Controller\AppController.phpに保存しています
アクセス先はhttp://localhost/php/cake/2.0/app/webroot/index.phpです

http://localhost/php/cake/2.0/でのアクセスだとIndex of /php/cake/2.0/app/webrootになってしまいます。

またapacheには
<Directory "C:\Users\fruit\Desktop\www\php\cake">
AllowOverride All
</Directory>
と記述してあります。


どうでしょうか、よろしくお願い致します。
0593nobodyさん2012/02/10(金) 21:04:40.72ID:???
>>591

mod_rewriteの設定ですが#ははずしてあります。
0594nobodyさん2012/02/10(金) 21:06:52.99ID:???
ごめんさい記述みすしていました

正確には
ディレクトリはC:\Users\fruit\Desktop\www\php\cake\2.0\app\Controller\AppController.phpに保存しています

でした 。wwwをlocalhostとしています。
0595nobodyさん2012/02/10(金) 21:13:17.18ID:???
>?>←これはなかったので付け足しました
php.iniで、それの有無に関しての挙動が変更できる。

現在のPHPのデフォルトは、「閉じタグ ?> が無い事が標準」となってる。

初学者なのは分かるけど、いきなりフレームワークに手に入れるとか愚の骨頂。
どれだけの人数がテストしてると思ってるの?
0596nobodyさん2012/02/10(金) 21:26:19.60ID:???
>>595
そうだったんですね。初めて知りました!
ありがとうございます。
0597nobodyさん2012/02/10(金) 21:37:46.65ID:???
>>589,590,591

一通りhttpd.confをみなおし、ルートも確認し
>>595のとおり?>もはずしてみましたがやはり直りませんでした。

どなたかわかりそうな方いましたら、よろしくお願い致します。
0598nobodyさん2012/02/10(金) 22:18:06.68ID:???
>>597
ルートを確認したっていうことだけど、
httpd.conのDocumentRootはどう書いてあるの?
0599nobodyさん2012/02/10(金) 22:22:19.33ID:???
>>598
DocumentRoot "C:/Users/fruit/Desktop/www"
<Directory "C:/Users/fruit/Desktop/www">

このように設定してあります。
0600nobodyさん2012/02/10(金) 22:31:07.86ID:???
脱線だが、デスクトップにファイル置いて開発するとか、みんなそうしてるの?
アクセス権限とか切り分けが面倒になるから、俺はドライブルートから
浅い所にファイルを置くんだが。
0601nobodyさん2012/02/10(金) 22:40:32.26ID:???
>>600
俺はMac使ってるけど
cake本体は /Library/ の中、appは /Users/俺/ウェブ開発/○○アプリ って感じ。
jquery関係とかよく使うアセットはcake本体側に入れとけば複数app作るの楽だし
0602nobodyさん2012/02/10(金) 23:53:22.09ID:???
>>599
・http.confにOptions FollowSymLinksの指定がしてあるか
・そもそもmod_rewriteはLoad Moduleされてるのか
・apacheのエラーログ確認
・各.htaccessにrewrite baseの設定が要るかも?
0603nobodyさん2012/02/11(土) 00:17:43.73ID:???
>>600
ふつうはしない。
が、初心者はだいたいそうする。
0604nobodyさん2012/02/11(土) 00:55:37.73ID:???
どなたか>>585お願いします
0605nobodyさん2012/02/11(土) 02:53:33.10ID:???
>>604
ヘルパーはApp::importで読み込んでnewすれば使えるけど、
わざわざ呼ばんでも
debug($this->paginate)とかdebug($this->params)とかやったらなんかヒントあるんじゃね?
0606nobodyさん2012/02/11(土) 08:51:11.48ID:???
>>602
Options FollowSymLinksは記述してためしてもAppController.phpのエラーが返ってきます。

Load Moduleはしてあります

apacheのエラーは
[Sat Feb 11 08:43:04 2012] [error] [client 127.0.0.1] PHP Fatal error: Class 'AppController' not found in C:\\Users\\fruit\\Desktop\\www\\php\\cake\\2.0\\app\\Controller\\AppController.php on line 2
となっていてブラウザ上でみるphpエラーと同様になってます

rewrite baseを設定してみたらcssが読み込まれなくなりました
0607nobodyさん2012/02/11(土) 13:31:36.87ID:???
>>606
携帯からなんで詳しい設定名わからんけど、
index.phpをインデクスファイルとして読み込む設定になってないんじゃないの
0608nobodyさん2012/02/13(月) 23:59:06.34ID:???
1.3でjoinしているカラムをソートするにはどうすればいいのでしょうか?
$paginator->sort('投稿数', 'Post.total_num')

みたいにビューに書いてもソートされません。
06096082012/02/14(火) 00:16:33.57ID:???
自己レスです。virtualFields使えば出来ました。
今まで使い方を理解してませんでしたが、
$this->User->virtualFields = array(
'total_num' => 'COUNT(Post.user_id)'
);

みたいにすればいいんですね。
0610nobodyさん2012/02/14(火) 03:08:29.79ID:???
CakePHPかRubyOnRailsを習得するなら
どちらを優先的にすべきですか?

RORのほうはサーバーの構築からが必要だったりでお気軽感覚では出来ず導入のための敷居は高い気がします。
しかし、Deviseというプラグインがあったりするので、いちいちユーザー登録や、ユーザー管理、ログイン管理の機能を作らなくても済んだりします。

一方でCakePHPなら未だに情報交換が活発になされてますし、あまり環境にこだわらずフォルダごと、ぶちこめば大抵うごいてくれます(データベース設定やパーミッション等はありますが)


両方出来る人とかに聞きたいのですが、どちらがオススメですか?
0611nobodyさん2012/02/14(火) 03:20:43.81ID:???
趣味か仕事かどっちだ?
0612nobodyさん2012/02/14(火) 03:29:17.24ID:???
仕事で使うならこれからはCodeigniterだよねやっぱり
0613nobodyさん2012/02/14(火) 03:51:01.11ID:???
今からCake覚えて何かいいことあんの?
0614nobodyさん2012/02/14(火) 10:42:41.43ID:???
>>610
好きな方か、仕事で教えてくれる環境にある方。
ぶっちゃけやることは変わらん。
0615nobodyさん2012/02/14(火) 15:53:13.31ID:XKQCpFOZ
CakePhp2.0初心者で勉強しています。
セッションを使用して、異なるコントローラー間でデータの受け渡しを行いたいのですができません。
使用方法が間違っているのでしょうか?

異なるコントローラー間で以下の2行を実行しています。
$this->Session->write('id','hogehoge');
$hoge = $this->Session->read('id');


core.phpのセッション設定は以下の設定です。

Configure::write('Session', array(
'defaults' => 'php'
));
0616nobodyさん2012/02/14(火) 17:04:00.93ID:???
>>615
上の一行をあるコントローラでやって、
下の一行を違うコントローラでやってると言う意味だよね?

まず下の一行を実行する前に

if($this->Session->check('id))
でセッション変数自体が存在しているか確認するのはやってみた?
06176152012/02/14(火) 17:37:28.16ID:???
>>616
返信ありがとうございます。
windows環境で作成をしてて、なぜかPCを再起動したら取得できましたm(_ _)m ナゾです・・ 
0618nobodyさん2012/02/14(火) 23:58:24.06ID:???
>>611
趣味ですが
仕事にも将来的には生かせればと思います
0619nobodyさん2012/02/17(金) 14:11:59.26ID:???
index.phpからcakeにアクセスするだけじゃなくて、
別名を付けたファイル名からアクセスしたい場合、
ファイル内に $_GET['url'] = '/user/index' みたいに書けば良いだけですかね?
表向きはピュアPHPみたいなURLにしたいです。
0620nobodyさん2012/02/17(金) 14:33:54.66ID:???
>>619
意味が分からん。

foobar_controller.php
foobar_index.ctp
foobar_alt_index.ctp

URLとファイル名は必ずしも強固に1体1対応で無くてもいいんだよ。
render('ctpファイル名')でいくらでも描画先変えられるし、redirectでもいい。

特定のURLのみ、URLのファイル名とは異なるctpファイルを読み込みたい場合は、
controller側でfunction URL名(ファイル名)を作ればいくらでも好きなファイルをrender出来る。
0621nobodyさん2012/02/17(金) 14:47:34.93ID:???
>>620
そうじゃなくて、基本的にcakeにアクセスするのって
webtoor内のindex.phpと.htaccessを元にしてるじゃないですか?
それを通さないで、単体のファイルで動かしたいって事です。
0622nobodyさん2012/02/17(金) 14:50:28.33ID:???
勝手に動かせばいい
0623nobodyさん2012/02/17(金) 22:15:37.39ID:???
>>618
cakephp覚えたところで仕事無し
railsならあるぞ
0624nobodyさん2012/02/17(金) 22:18:17.74ID:/liskI/Y
>>623
あなたはないかもしれないが、こちらは一杯あるよ
■ このスレッドは過去ログ倉庫に格納されています