【PHP】フレームワーク CakePHP 13ホール目【v2.0】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2011/11/09(水) 01:05:10.60ID:???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/
0514nobodyさん
2012/01/23(月) 11:36:23.68ID:Vo1w/brb'北海道' => '北海道',
'青森県' => '青森県',
'岩手県' => '岩手県',
'宮城県' => '宮城県',
'秋田県' => '秋田県',
'山形県' => '山形県',
'福島県' => '福島県',
'茨城県' => '茨城県',
(中略)
'鹿児島県' => '鹿児島県',
'沖縄県' => '沖縄県'
), 1, array('empty' => null, 'class' => 'orderform')) . PHP_EOL;
と書いたんですが、出力をみると一つ目の北海道にselectedがついてなくて、
<option value="福島県">福島県</option>
option value="茨城県">茨城県</option>
と茨城県だけ頭の<が出ないです
茨城の項目を削除すると、次の栃木の頭の<が消えるので福島が原因かと思ったんですが
福島を消しても栃木が消えるので8個目が消えるという感じかも知れないんですが
解消する方法ご存知でしたらお教えくださいますようよろしくお願いいたします
0515nobodyさん
2012/01/23(月) 12:43:46.65ID:???0517nobodyさん
2012/01/23(月) 16:49:13.48ID:???俺はaddとeditは一緒にaddの中に書いて、idがあるかどうかで条件分岐してるわ
アクション分けたいならfunction _addOrEdit()みたいなのをつくって、共通処理はそこに突っ込めば?
0518nobodyさん
2012/01/24(火) 16:24:41.34ID:???deconstructが効いていない理由がわかりません…助けて。
view:
echo $this->Form->label('birthday', '生年月日');
$minY = date('Y')-100;
$maxY = date('Y')-18;
echo $this->Form->datetime('birthday', 'YMD', null, array('monthNames' => false, 'minYear' => $minY, 'maxYear' => $maxY, 'separator' => array('年', '月', '日')));
コントローラ:
if(!$this->Hoge->save($this->request->data)) {
$this->Session->setFlash('データの登録に失敗しました。');
}
Formヘルパー(separatorの配列対応):
//$opt = implode($separator, $selects);
$opt = "";
$i = 0;
if (is_array($separator)) {
foreach($selects as $select) {
$opt .= $select.$separator[$i];
$i++;
}
} else {
$opt = implode($separator, $selects);
}
0519nobodyさん
2012/01/24(火) 22:58:24.14ID:???手元で検証してみたら、確かにModel::deconstruct()が仕事しなかった。
んで、最新版落っことしてきて、コアの部分をすげ替えたら動いたよ。
cake2最初期版はなんか問題があったんかもしれんね。
ついでにもうひとつ。
FormHelper::dateTime()だけど、引数の取り方変わってるよ。
その書き方でほんとにプルダウン生成されてるかい?
http://book.cakephp.org/2.0/ja/appendices/2-0-migration-guide.html#formhelper
0520519
2012/01/24(火) 23:16:35.15ID:???DBにdate型とかでbirthdayフィールドが存在しなければ
Model::deconstruct()はきっと何もしてくれない。
Model::deconstruct()のメソッド内にある
$type = $this->getColumnType($field);
で有効な値が取れて初めて機能する模様。
なんともはや。。。
0521nobodyさん
2012/01/25(水) 16:31:52.13ID:???これは今後のバージョンで無くすということ?使うなということ?
0522521
2012/01/25(水) 16:40:31.53ID:???0523nobodyさん
2012/01/26(木) 22:25:16.80ID:???今2.0でリリースすると中途半端な気がして、2.1のリリースを待機している・・・
0524nobodyさん
2012/01/27(金) 13:11:04.23ID:???そろそろPHP5.3仕様のフレームワークに移りたい・・・
あと、データが配列なのももう嫌。
今のところ、正式版でてるのはSymfony2かFuelPHPかな?
Yiiも次期バージョンでは5.3を使うらしい。
0525nobodyさん
2012/01/27(金) 13:56:20.77ID:???0526nobodyさん
2012/01/27(金) 14:58:32.50ID:???0527nobodyさん
2012/01/27(金) 15:19:00.44ID:???たとえば、ビューがifだらけになっちゃうことなどです。
バーチャルフィールドである程度は対処できますが、
限界がありますし・・・
0528nobodyさん
2012/01/27(金) 19:36:57.17ID:???マニュアルを確認すると
「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
0530nobodyさん
2012/01/27(金) 21:51:47.71ID:???同名のコントローラにアクセスすると、そのフォルダを読みに行ってしまいます。
例
/webroot
└/test
└index.php
の場合、http://example.com/test/
でアクセスすると、/webroot/test/フォルダ内のindexファイルを探す
同名のフォルダがあった場合、コントローラーを読み出すようにするには
どうすればいいのでしょうか?
0533nobodyさん
2012/01/28(土) 16:14:55.65ID:???0534nobodyさん
2012/01/29(日) 02:29:16.25ID:???<a class="desc" のようなclass名が付くと思うのですが、
1.3.14では付きません。なにか設定方法が変わったのでしょうか?
0535nobodyさん
2012/01/29(日) 20:34:45.68ID:???と遷移する画面があるとして、1でPOSTされたdataをそのまま3で使いたい時
どうすればいいかね?
2でinput hiddenで埋め込むしかないの?
0536nobodyさん
2012/01/30(月) 01:35:56.87ID:???これどうだい?
https://github.com/jaredhoyt/cakephp-wizard/
0537nobodyさん
2012/01/31(火) 20:54:05.78ID:???ボットの適当なアクセスでerror.logが更新されまくって困るんだが
0538nobodyさん
2012/01/31(火) 21:27:48.91ID:???今、2.0系で開発してるんだが、2.1系とどれくらい互換性あるのかね
2.1まで待てばよかったかなぁ・・・
0539nobodyさん
2012/02/01(水) 14:03:22.66ID:???リンクをクリックすると絞り込み検索して,結果を一覧表示させる方法がわからないです。
全レコードの出力はindexアクションなんだけど,
絞込検索の方は,また別にアクションを書く必要があるの?
それともindexアクションの中で絞り込むことってできるの?
0540nobodyさん
2012/02/01(水) 14:31:02.84ID:???0541nobodyさん
2012/02/01(水) 18:11:27.88ID:???2.1は2.0完全互換なので問題なく動くはず
ただ2.1でも重要な部分のアップデートがあるから、その辺はどちらにせよそのうち直すことになりそうだけど
0542sage
2012/02/03(金) 01:46:58.38ID:???0543sage
2012/02/03(金) 01:48:56.31ID:???0544nobodyさん
2012/02/03(金) 03:11:07.37ID:???○ Readme
スペルは正しく書きましょう
0545nobodyさん
2012/02/06(月) 21:53:18.73ID:???0546nobodyさん
2012/02/07(火) 02:09:02.39ID:???やっぱり人口が多いのが一番だね英語知らないから
0547nobodyさん
2012/02/07(火) 14:09:10.01ID:???俺的にはオレオレと変わらないと思ってる。
多少動作が重くても、扱える人口が多いことに意味がある。
0548nobodyさん
2012/02/07(火) 19:26:51.77ID:???明らかにYiiはCakePHPより優れてるよ
日本人の使用者人口が増えれば日本語のリソースも増えてくると思うし
英語がダメな人はもう少し待つほうがいいかもな
0549nobodyさん
2012/02/07(火) 19:36:59.22ID:???本当にYiiが優れてるのなら、もっとブログで情報発信したりスレに書き込んだりしてくれよ
軽く触った感じではCakePHPに次いでいい感じだったけど、ユーザー少なそうで本腰入れる気になれない
ユーザーいないから情報出なくて、情報出ないからユーザー増えないという悪循環にはまってる感じがする
0550nobodyさん
2012/02/07(火) 20:08:39.28ID:???って考えになるんだよな。
0551nobodyさん
2012/02/07(火) 22:20:42.14ID:???>ユーザーいないから情報出なくて、
日本語で情報探すとそう感じるけど、
英語で探すとけっこう出てくるよ。
てかドキュメントがしっかりしてるからあんま必要ないけどね。
まぁ世界全体でだけど、こんな感じの伸び率
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:???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:???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:???0566nobodyさん
2012/02/08(水) 12:08:44.04ID:???0567nobodyさん
2012/02/08(水) 12:11:29.75ID:???0568nobodyさん
2012/02/08(水) 12:14:52.18ID:???0569nobodyさん
2012/02/08(水) 12:15:51.13ID:???0570nobodyさん
2012/02/08(水) 12:18:45.15ID:???0571nobodyさん
2012/02/08(水) 12:19:03.41ID:FLeGKhAC0572nobodyさん
2012/02/08(水) 12:22:28.38ID:???0573nobodyさん
2012/02/08(水) 12:40:57.21ID:???0575nobodyさん
2012/02/08(水) 16:25:40.59ID:???0577nobodyさん
2012/02/08(水) 17:01:40.67ID:???0578nobodyさん
2012/02/08(水) 18:10:15.72ID:???0579572
2012/02/08(水) 18:39:58.51ID:???0581nobodyさん
2012/02/08(水) 21:44:51.18ID:???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に配列で選択肢を指定したら
横並びの入力項目が出来るので、
画像付きのこういった表現が出来ません。
どうすればいいのでしょうか?
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:???すみません、いろいろとググったのですがみつからず困ってました。
AppControllerにアクションwebrootがみつからない
ファイルapp\Controller\AppController.php作ってwebroot()を作れ
っと言われてると思うのですが、実際に作るとphpでのエラーがでてしまいます。
Fatal error: Class 'AppController' not found
申し訳ありませんが、ヒント頂ければと思います。
0589nobodyさん
2012/02/10(金) 20:19:58.49ID:???app\Controller\AppController.php
には正確にはどう書いた?
とうか、そもそも、どういうディレクトリにインストールして
どこにアクセスしてる?
0590nobodyさん
2012/02/10(金) 20:55:32.66ID:???document rootと、http側のrootが一致してないと見た。
0591nobodyさん
2012/02/10(金) 21:02:16.73ID:???そのあとのエラー的に、>>590の言うとおりパスがおかしいんじゃないかと。
あとhttpd.conf内でmod_rewriteは設定してるよな?
まずはhttpdの設定を見直すよろし。
0592nobodyさん
2012/02/10(金) 21:02:49.14ID:???中には表示されていた
<?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>
と記述してあります。
どうでしょうか、よろしくお願い致します。
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のデフォルトは、「閉じタグ ?> が無い事が標準」となってる。
初学者なのは分かるけど、いきなりフレームワークに手に入れるとか愚の骨頂。
どれだけの人数がテストしてると思ってるの?
0597nobodyさん
2012/02/10(金) 21:37:46.65ID:???一通りhttpd.confをみなおし、ルートも確認し
>>595のとおり?>もはずしてみましたがやはり直りませんでした。
どなたかわかりそうな方いましたら、よろしくお願い致します。
0598nobodyさん
2012/02/10(金) 22:18:06.68ID:???ルートを確認したっていうことだけど、
httpd.conのDocumentRootはどう書いてあるの?
0599nobodyさん
2012/02/10(金) 22:22:19.33ID:???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:???俺はMac使ってるけど
cake本体は /Library/ の中、appは /Users/俺/ウェブ開発/○○アプリ って感じ。
jquery関係とかよく使うアセットはcake本体側に入れとけば複数app作るの楽だし
0602nobodyさん
2012/02/10(金) 23:53:22.09ID:???・http.confにOptions FollowSymLinksの指定がしてあるか
・そもそもmod_rewriteはLoad Moduleされてるのか
・apacheのエラーログ確認
・各.htaccessにrewrite baseの設定が要るかも?
0605nobodyさん
2012/02/11(土) 02:53:33.10ID:???ヘルパーはApp::importで読み込んでnewすれば使えるけど、
わざわざ呼ばんでも
debug($this->paginate)とかdebug($this->params)とかやったらなんかヒントあるんじゃね?
0606nobodyさん
2012/02/11(土) 08:51:11.48ID:???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:???携帯からなんで詳しい設定名わからんけど、
index.phpをインデクスファイルとして読み込む設定になってないんじゃないの
0608nobodyさん
2012/02/13(月) 23:59:06.34ID:???$paginator->sort('投稿数', 'Post.total_num')
みたいにビューに書いてもソートされません。
0609608
2012/02/14(火) 00:16:33.57ID:???今まで使い方を理解してませんでしたが、
$this->User->virtualFields = array(
'total_num' => 'COUNT(Post.user_id)'
);
みたいにすればいいんですね。
0610nobodyさん
2012/02/14(火) 03:08:29.79ID:???どちらを優先的にすべきですか?
RORのほうはサーバーの構築からが必要だったりでお気軽感覚では出来ず導入のための敷居は高い気がします。
しかし、Deviseというプラグインがあったりするので、いちいちユーザー登録や、ユーザー管理、ログイン管理の機能を作らなくても済んだりします。
一方でCakePHPなら未だに情報交換が活発になされてますし、あまり環境にこだわらずフォルダごと、ぶちこめば大抵うごいてくれます(データベース設定やパーミッション等はありますが)
両方出来る人とかに聞きたいのですが、どちらがオススメですか?
0611nobodyさん
2012/02/14(火) 03:20:43.81ID:???0612nobodyさん
2012/02/14(火) 03:29:17.24ID:???0613nobodyさん
2012/02/14(火) 03:51:01.11ID:???■ このスレッドは過去ログ倉庫に格納されています