【PHP】フレームワーク CakePHP 8ホール目【1.3】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2010/03/18(木) 10:00:59ID:6+kHM8kHCakePHPから派生したLithium(li3)も専スレできるまではここでどうぞ
質問するときはCakePHPのバージョンを書きましょう
※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
0512nobodyさん
2010/06/08(火) 22:22:57ID:???ctp内の'id'=>を消したらいけました
0513nobodyさん
2010/06/08(火) 23:06:25ID:???0515nobodyさん
2010/06/10(木) 06:23:37ID:???機能的には同じものを提供しているように思うんですが
0517nobodyさん
2010/06/10(木) 08:37:39ID:???バカだな
ニートなお前は
親に依存してるだろ?→belongsTo
でも逆に親から見ると
親はお前を養ってるだろ?→hasOne
お前兄弟いる?いるなら
親はお前(ら)を養ってるだろ?→hasMany
0518nobodyさん
2010/06/10(木) 08:52:47ID:???ちがうよ!全然違うよ!
User hasOne Profile だけど、 User belongsTo Country になる。
この場合、Country hasMany User が成り立つ。(別に設定する必要はないが)
相手側から見てhasManyが成り立てばbelongsToだよ
0520nobodyさん
2010/06/11(金) 09:02:47ID:iUDx5l1Bオープンソース徹底活用 CakePHPによるWebアプリケーション開発
http://books.google.co.jp/books?id=_6uO_tNQRTUC&printsec=frontcover#v=onepage&q&f=false
0522nobodyさん
2010/06/11(金) 19:58:24ID:???data[0][bbb]
data[0][ccc]
data[1][aaa]
data[2][bbb]
data[3][ccc]
のような配列のバリデーションって出来ますか?
0524nobodyさん
2010/06/12(土) 00:17:39ID:???Not Found
Error: The requested address '/' was not found on this server.
でハマっています。
Configure::write('debug', 0); を0以外にするとエラーにならなくなります。
どこから調べていけばいいでしょうか…。
0525nobodyさん
2010/06/12(土) 03:08:55ID:???0526nobodyさん
2010/06/12(土) 07:58:43ID:???ん?debug 1だとエラーが出ないってこと?
そしたら、layoutsファイル内にecho $content_for_layoutが無いとか?
0527nobodyさん
2010/06/12(土) 12:55:30ID:???0528nobodyさん
2010/06/12(土) 21:20:41ID:???mod_rewriteが効いてない?みたいで
cakeのディレクトリにあるindex.phpが404で開きません。
apacheのhttpd.confと
cakeの3つの.htaccessのRewriteBaseも解説本通り修正したんですが
ほかに何か問題になりそうなところってありますか?
0529528
2010/06/12(土) 21:40:47ID:???.htaccessのRewriteBase外したらおkでした。
0531nobodyさん
2010/06/15(火) 12:18:42ID:???サブディレクトリがくっついてきて、そのままだとCakePHPの吐き出す絶対パスが
合わなくなってしまいます。
mod_rewriteのrewritebaseで設定すればいけると思いますが、ホスト名によって
rewritebaseを複数設定することは可能でしょうか?
0532nobodyさん
2010/06/17(木) 13:15:31ID:???を改造したいんですが、
直接ファイルに手を入れずに別の場所において修正する事は可能でしょうか
ヘルパーを改造したいときに
cake/libs/view/helpers/*.php
を
app/views/helpers/
に
置くのと同じイメージでできればと思ってるんですが
0533nobodyさん
2010/06/17(木) 13:39:37ID:???そういう改造を施した例とかどこかにないでしょうか
HTMLとPHPをなるべく分離したいのです
よろしくお願いします
0534nobodyさん
2010/06/17(木) 14:22:14ID:bowe+bRaできるんじゃない?
>>532
app/session.phpにコピーすれば、そっちが優先して動くんじゃない?
>>533
Smarty使う方法はたくさん解説されてるから、それを参考にすればよいんでない?
0535nobodyさん
2010/06/17(木) 14:37:47ID:???0536nobodyさん
2010/06/17(木) 16:08:10ID:???とかやって表示件すとか色々出力しているのだけど
Notice (8): Undefined index: limit [CORE/cake/libs/view/helpers/paginator.php, line 543]
Notice (8): Undefined index: limit [CORE/cake/libs/view/helpers/paginator.php, line 545]
ってエラーがでる。
controller側で
$this->paginate = array(
'fields' => 'hoge',
'conditions' => array(...),
'limit' => 10,
'order' => 'id asc',
);
$this->paginate('model');
って、limitの指定をしているのになぜ?
0537nobodyさん
2010/06/17(木) 16:44:56ID:???もうやめとけ
0538nobodyさん
2010/06/17(木) 17:02:15ID:???0539nobodyさん
2010/06/17(木) 17:12:17ID:???0540nobodyさん
2010/06/17(木) 17:34:38ID:???0541nobodyさん
2010/06/17(木) 18:28:29ID:???conditionsがconditonsだったのを発見した時の脱力感・・・
0542nobodyさん
2010/06/17(木) 18:29:48ID:???0543nobodyさん
2010/06/17(木) 20:17:00ID:???0544nobodyさん
2010/06/17(木) 20:36:01ID:???0545nobodyさん
2010/06/18(金) 09:40:58ID:???Strutsの黎明期そっくりだ。
0547nobodyさん
2010/06/18(金) 17:17:03ID:???回避する方法はあるのでしょうか?
dispatche.phpのechoしている部分の前に、
「ob_clean();」を追加しても解消しませんでした。
0551nobodyさん
2010/06/19(土) 04:33:18ID:iks7bUVlviewとかcontrollerとかで、その場でHelper使いたいとき
App::import('Helper', 'Form');とか例えばやったとして
new Formして $form->input();とか使うと、
Undefined property: FormHelper::$Html って怒られます。
自動で FormHelperクラスの $helpersを読み込むのをやってくれないんだと思うんですけど
どうにかして正常に動作させられないですかね?
調べると英語で同様の症状を訴える投稿はありますけど明確な回答が見つからんです。
0552nobodyさん
2010/06/19(土) 04:45:21ID:???そのまんまなのだがw
HTMLヘルパーも読み込んでみれ
0555nobodyさん
2010/06/19(土) 15:47:58ID:???「デフォではxを選択した状態だけど、バリデーションエラー時とかにはユーザーが選択した状態」
にするにはどうしたらいいの?
optionでselected設定しちゃうと、バリデーションエラー時にその設定が優先されちゃって
ユーザーの選択じゃなくなっちゃうんだけども
0556nobodyさん
2010/06/19(土) 16:10:46ID:???で普通にいけない?
ユーザからのデータがない場合は、$valueに初期値を設定するようにして、
ユーザからのデー座がある場合は、それを上書きして view に渡す。
0557nobodyさん
2010/06/19(土) 16:40:56ID:???>ユーザからのデータがない場合は、$valueに初期値を設定するようにして、
やっぱりそれしかないのかな
フォームヘルパー自体でそういう機能を備えてくれてるといいんだけど、
コントローラー側で一手間かかるのを、出来れば省略したい
0558nobodyさん
2010/06/19(土) 17:08:19ID:???つ array('default' => 'x')
あんまり使ったことないけどね
初期値与えるならcontroller(model)のほうがいいと思うなあ
0559nobodyさん
2010/06/19(土) 17:34:03ID:???まさにそれ!ありがとう!
確かにモデルと関連させてデフォを決める場合には、ヘルパーで決めちゃわない方がいいかもしれないけど、
とりあえずこれで行くわ
0560nobodyさん
2010/06/19(土) 17:40:13ID:???あ、最後のはひとりごとだから気にしないで
あと、データが0のときは、デフォルトの値に上書きされるかも。要注意
0561nobodyさん
2010/06/19(土) 17:44:38ID:???0562nobodyさん
2010/06/19(土) 18:02:08ID:???0565nobodyさん
2010/06/19(土) 20:24:22ID:???かわいそうだろ
0566nobodyさん
2010/06/19(土) 21:06:08ID:???一番低脳だというのは言うまでもない話。
0567nobodyさん
2010/06/19(土) 21:50:44ID:???例えば
/status:active/page:2 にアクセスすると
nextのリンクは /page:3/status:active になる
といった感じです
コードを追ってみたところ、pagination helperの中でnamedパラメーターを配列として扱って、
array_margeを何度か行っている関係で、pageが配列の一番最初に来てしまって、結果、
URLの一番最初のnamedパラメーターとして表示されてしまっているようです
pagination helper自体をいじって、最終的にpageを配列の一番最後に持ってくれば
正しく動きそうですが、他にもう少しスマートな方法はないでしょうか・・・
0568567
2010/06/19(土) 22:20:31ID:???if(isset($url['page'])) {
$page = $url['page'];
unset($url['page']);
$url = array_merge($url, array('page'=>$page));
}
を追加したら、page:xが一番最後に来るのを確認できました
0569551
2010/06/19(土) 23:15:37ID:iks7bUVlそりゃわかるんですけど
そもそも読み込まれないのがなんとかならないかという話です。
App::import('Helper', 'Form');
App::import('Helper', 'Html');
$form = FormHelper;
$form->Html = HtmlHelper;
ここまでやればHtmlがないとは怒られないですが、$form->webrootがセットされていなかったりと、
そもそもApp::import('Helper' が用意されているのにも関わらず、
ちゃんと使える状態にならないってのもおかしいのではないかと思い質問させていただきました。
0571nobodyさん
2010/06/21(月) 13:51:06ID:???0572nobodyさん
2010/06/21(月) 17:40:58ID:???で、適切なデバッグレベルの場合はテストが実行されますが、これを無効にする方法はありますか?
本番リリース時などでデバッグレベルを0にした場合、テスト自体は行われませんが
「Debug setting does not allow access to this url.」
などというメッセージが出てきます。
こういう場合はwebroot直下のtest.phpを削除するのが正しいですか??
0574nobodyさん
2010/06/22(火) 20:20:10ID:???0575nobodyさん
2010/06/22(火) 20:47:10ID:???その中でヘルパーを使いたいときは
引数で渡す以外にどうすれば上手くできるでしょうか
0577nobodyさん
2010/06/23(水) 02:28:29ID:???退会すると当然Authによりはじかれてログインはできないけど、
写真に直接アクセスされたとき、はじかれませんよね?
写真一枚表示するのにCakeのコア動かしてAuthログイン判断してってのは負荷が心配だし
なにかいい方法ないですかね?
ファイル名をランダムにしててもメモされたら意味ない
でもメモする位ならファイル保存しない?じゃあよくね??みたいな永久ループしてます。
0578nobodyさん
2010/06/23(水) 02:41:17ID:???コストと実利を天秤にかけろ
0579nobodyさん
2010/06/23(水) 09:38:51ID:???ttp://neta.ywcafe.net/000774.html
この考え方で出力すればよい
(キャッシュは定期的に削除する)
が、どのみちURL叩かれたら退会前でも会員以外の人に見られるのは一緒
mixiが以前そうだったね
0580nobodyさん
2010/06/23(水) 12:39:45ID:hpuIM/fTどこが原因かチェックする方法ってありますか?
Controller自体は、find() を2回使って、出力するHTML自体も20Kb程度です。
0581nobodyさん
2010/06/23(水) 12:44:17ID:???0583nobodyさん
2010/06/23(水) 13:58:09ID:???cake\basics.phpに追加する以外に
何か方法はありますか?
0584nobodyさん
2010/06/23(水) 14:11:23ID:???0586nobodyさん
2010/06/23(水) 18:19:33ID:???Authコンポーネントを使い基本的なログイン機能を作っていたのですが
core.phpを書き換えてセッションをDB管理したら
ログイン出来なくなりました。
エラーメッセージも出ず、auth.phpを上から見ていってるのですが
どこでつまづいてるのかわかりません。
セッションをDB管理し、authを使うには何か設定が必要でしょうか
0587nobodyさん
2010/06/23(水) 18:20:11ID:???それを使わずmysql_connectやpear::DBを使ってDB接続することはありますか?
0590nobodyさん
2010/06/23(水) 23:04:49ID:???こんなもんいらね
0591nobodyさん
2010/06/23(水) 23:10:47ID:???ていうか開発者から、取るのを推奨されているんだっけ?
何のためかは良く知らないけど
改行が入ったりの予防くらい?
0592nobodyさん
2010/06/23(水) 23:24:38ID:???でも最初からあるコードは基本的に放置だな
むしろ手を加えることで何か不具合出してしまいそう
0595nobodyさん
2010/06/24(木) 00:29:11ID:???0596nobodyさん
2010/06/24(木) 01:10:16ID:???0597nobodyさん
2010/06/24(木) 02:10:58ID:???何いってんの?
0598nobodyさん
2010/06/24(木) 08:28:24ID:???ちげぇよ愛だよ
0599nobodyさん
2010/06/24(木) 13:44:40ID:???coreに記述されているハッシュの種が変わったから、
違うパスワードが生成されているんじゃないの?
照会SQLを確認してみな。
0600nobodyさん
2010/06/24(木) 23:26:58ID:???そのうちPHPの仕様が変わって絶滅するだろうな。
ガハハハハハハハハ
0601nobodyさん
2010/06/24(木) 23:45:45ID:SNEZsqXVとcakePHPによる実践アプリケーション開発 という本に
例があり一部抜粋したのですが、この先頭のeとは何なんでしょうか?
0603nobodyさん
2010/06/25(金) 08:04:32ID:???Ajaxで使うときはエラーになって邪魔です。Ajaxで使うときは出力しないようにできませんか?
0604nobodyさん
2010/06/25(金) 08:55:39ID:???beforeRenderとかで
if ($this->RequestHandler->isAjax()) Configure::write('debug',0);
って感じ
0605nobodyさん
2010/06/25(金) 10:22:11ID:???照会SQL確認して、
セッションテーブルのIDをintにしていたのが間違っていました
ばーちゃーにしたらうまく動きました。
ありがとうございます!
0607nobodyさん
2010/06/25(金) 18:49:37ID:0V5oobxvありがとうございました。
0608nobodyさん
2010/06/25(金) 20:47:40ID:???0609nobodyさん
2010/06/25(金) 20:55:23ID:???0610nobodyさん
2010/06/28(月) 01:42:58ID:???■ このスレッドは過去ログ倉庫に格納されています