【PHP】フレームワーク CakePHP 14ホール目【v2.1】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2012/05/01(火) 16:58:44.53ID:fVBzm1/ACakePHPから派生した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 13ホール目【v2.0】
http://kohada.2ch.net/test/read.cgi/php/1320768310/
0346nobodyさん
2012/07/17(火) 02:39:34.70ID:???日本ではなんで Drupal 流行んないの?
凄くよくできたCMSだと思うんだけど。
0347nobodyさん
2012/07/17(火) 02:54:19.19ID:???0348nobodyさん
2012/07/17(火) 08:25:10.35ID:???名前忘れたけど、どこかのスライドショーで公開してたよね?
確か、管理画面はCakeだけど、表のユーザが利用する箇所は
素のPHP+memcachedを使って速度を出していたはず
0349nobodyさん
2012/07/17(火) 10:08:42.34ID:???0351nobodyさん
2012/07/17(火) 13:01:24.53ID:???ゲームは更新が激しくて、キャッシュはほとんど使えないんだ
0353nobodyさん
2012/07/17(火) 15:55:28.65ID:???スレ違い
だが、Drupalの発音がよく分からない、発音しにくい、キャラクターがあまり可愛くない
っていうのは最初の壁として地味に効いてる気がする。
一度突破すれば無関係になるんだろけど。
0354nobodyさん
2012/07/17(火) 16:35:41.09ID:???よく見ると全然綴りが違うが
0355nobodyさん
2012/07/17(火) 18:06:08.91ID:???Drupal7 でIMCEとCKEditorを使ったファイルのアップロード設定を行ったのですが
画像をアップロードしても何も表示されません、どこに落ち度があるのでしょうか?
そこでCKEditor上でIMCEの機能を使って
挿入した画像のパスを確認してみたところ次の様になっていました。
http://domain.com/drupal/sites/default/files/pictures/large_picture.jpg
そもそも、この画像に対してブラウザ上からアクセスする事は出来るのか?
と思いアクセスしてみたところ次のエラーが出てしまいます。
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Drupalをインストールしたディレクトリ上の .htaccess はコメントアウトしており外すとそもそも
コンテンツ自体の表示が出来なくなります。
#Options -Indexes
#Options +FollowSymLinks
困ってます。お助け下さい。
0357nobodyさん
2012/07/17(火) 18:25:57.57ID:???Drupalスレマジで過疎ってるんですよ・・・
すごくよくできたCMSなのに・・・
世界ではメジャーなんだぜ!!
0359nobodyさん
2012/07/17(火) 18:38:23.96ID:???IMCE入れてConfigureもちゃんといっていると推測出来る状態です。
なぜからファイルアップロードウィンドウが正常に起動しているからです。
IMCEで指定した画像ファイルへのパスは、
次の様になっておりサーバ上に画像ファイルもしっかり存在していました。
http://domain.com/drupal/sites/default/files/pictures/large_picture.jpg
ブラウザから当該画像ファイルへ直接アクセスしようとして、
はじかれている事からアクセス制限回りが原因ではないかと疑っております。
みんなで Drupal 使ってもりあげてくれ!!
0360nobodyさん
2012/07/17(火) 20:41:07.36ID:???Excelがフレームワークだっていいきる俺がきましたょ
0361nobodyさん
2012/07/18(水) 12:27:45.60ID:???フォームにエラーがあったときに
inputの下だけじゃなくて、
一番上に出たエラーをまとめたもの出したいんだけど、どうしたらいい?
0362nobodyさん
2012/07/18(水) 12:32:22.69ID:???APIリファレンス読んでみ
0363nobodyさん
2012/07/18(水) 13:09:03.23ID:???<?php echo $form->input('hoge', array('type' => 'text', 'error' => false));?>
0364nobodyさん
2012/07/18(水) 14:51:43.89ID:???<?php
echo $this->Form->create('User', array('inputDefaults' => array('label' => false)));?>
echo $this->Form->input('User.email');
echo $this->Form->input('User.password');
?>
こんな感じでPOSTデータ送ったら、
passwordだけすっぽり抜けて送られるんだが・・・
$this->dataに入れるときになんかやってるのかと思って、
$_POSTをdumpしてみたけど、やっぱりpasswordだけ送られてない
こんなこと初めてだ・・・お手上げ状態
0365nobodyさん
2012/07/18(水) 14:58:51.64ID:???echo $this->Form->input('User.password');
echo $this->Form->input('User.test1');
とかやってみると、最初のemailだけしか送られていない
ほかのページでも最初のinputだけがPOSTされているみたいです。。。
やばい・・・本番サイトなのに・・・どうしよう
検討がつかないのがほんとにやばい
誰か知恵を貸して下さい
0366nobodyさん
2012/07/18(水) 15:06:24.68ID:???最初のinputだけPOSTするってどういうことだ???
0367nobodyさん
2012/07/18(水) 15:14:20.96ID:???でも初めての時はわからないよね、俺もそうだった
とりあえずないものだと思って開発した方が捗る
0368nobodyさん
2012/07/18(水) 15:20:28.68ID:???ちょっと試して期待した動作しなかったらやめる
このポリシーで貫いて、ほとんど使える所がなかったらそれは駄目FWだから捨てる
(幸いCakeはそこまで駄目ではない
FWなんて工数短縮のためにあるもの(そしてそのメリット以外は犠牲にするもの)なのに、
機能を使うために時間を費やすなんて本末転倒だ
出されたご飯は全部食べたいのが人情だが、冷静になろう
0369nobodyさん
2012/07/18(水) 15:22:05.83ID:???<?php
echo $this->Form->input('User.email');
?>
<label>パスワード</label>
<?php
echo $this->Form->input('User.password');
?>
<input name="data[User][test1]" type="text" id="UserTest1">
と書き換えてみましたが、
同じように最初のデータしか送信されませんでした
array(2) { ["_method"]=> string(4) "POST" ["data"]=> array(1) { ["User"]=> array(1) { ["email"]=> string(22) "[email protected]" } } }
というか、今まで正常に動いてたのが、急に動かなくなった、、、
確か何か作業したような記憶があるけど、MySQLのテーブルを消しただけだし、
ファイルいじった覚えがない・・・多分いじってしまったんだろうけど、
なんにせよこんな不可解な動きをして焦りまくってます;;;
0370nobodyさん
2012/07/18(水) 15:26:34.07ID:???次からそうします
本番ですぐに動かさないと業務に支障きたしていて、
今から全部formタグに書き換えるのもちょっと時間が無いですね、、、
というか今まで動いてたのが、急に動かなくなったので、
原因がわかればすぐに戻せそうなのですが、、、
こんな根本的な動きが変わるってことはコアのファイルをいじらないと変わらない気がするんですが
そんなファイルいじった覚えがない、、、
0371nobodyさん
2012/07/18(水) 15:30:09.32ID:???DBの要らないテーブル(test_*)を15テーブルほど消したことです。
ローカルと見比べても、間違えて消したテーブルはありません。
このテーブル消す作業はPHPMyAdminで行いました
この作業のときにコアファイルが壊れたとか??ありえないか・・・と思いつつ
cake/libを見ているんですがやはりとくに変わった様子はありません
0372nobodyさん
2012/07/18(水) 15:31:06.50ID:???動かないformだけformタグに置き換えるとかできんの
0374nobodyさん
2012/07/18(水) 15:35:23.32ID:???>>370ではformヘルパー脱却を検討
ほんと馬鹿を増やすスレだわ
0375nobodyさん
2012/07/18(水) 15:35:56.07ID:???動かないformというか、
全formが最初のinputしか送信していない状態ですね
なにか根本の部分で変わってしまったとしか思えない
0376365
2012/07/18(水) 15:40:41.14ID:???語弊がありました
送信していないかどうかは定かではありません。
とにかく、
送信先のcontroller内で、
var_dump($_POST)とやると
array(2) { ["_method"]=> string(4) "POST" ["data"]=> array(1) { ["User"]=> array(1) { ["email"]=> string(22) "[email protected]" } } }
このように、1つのinputだけしか入っていません。
0377nobodyさん
2012/07/18(水) 15:41:03.59ID:???ってあるけどたとえば順番入れ替えてpasswordを先頭に持ってきたらpasswodだけ受け取れるのかよ?
0378nobodyさん
2012/07/18(水) 15:43:27.56ID:???webrootのindex.phpの先頭でvar_dump($_POST)すると何出るの
0379nobodyさん
2012/07/18(水) 15:43:49.81ID:???0380nobodyさん
2012/07/18(水) 15:46:15.74ID:???$form->input(...)書いてました(てへぺろ
な展開だろ
0381365
2012/07/18(水) 15:55:03.20ID:???わけがわからん・・・
いやここにいる人も僕以上にわけわかってないと思うのですが、
当人もわかっていません
まず
>>377 はその通りです。
>>379-380 は、全formが急にこうなっていたので、書き間違えなどは無いと思います。
>>378 ああ、それを試したかったですね・・・
不可解すぎて今日眠れそうにないです。。。
0382365
2012/07/18(水) 15:57:18.12ID:???まず
不可解1
最初のinputだけ送られる、
しかも全フォームで
という謎の挙動
不可解2
急に直る
まだなにもアップロードしてない
こええ・・・
0383nobodyさん
2012/07/18(水) 15:59:51.85ID:???0385nobodyさん
2012/07/18(水) 16:32:06.06ID:???0387nobodyさん
2012/07/18(水) 16:57:40.65ID:???こっちだとどうなんだろ?
0388nobodyさん
2012/07/18(水) 17:49:20.92ID:???0389nobodyさん
2012/07/18(水) 18:04:13.59ID:???Cake云々言う前に論外。
0390nobodyさん
2012/07/18(水) 18:20:44.17ID:???必要最小限のコードでビュー(レイアウト含む)を作って、吐き出したコードさらしてみ?
あと中途半端にオレオレ入れるのって大抵時間とかが足らないので
仕様をよく理解できてないパターンだよな。
少なくとも FormHelper 使えないっていう人初めて見たわ。
0391nobodyさん
2012/07/18(水) 18:23:51.98ID:???フォーム関係でFormHelper使わずに何とかするって
それ、Cake使う意味無いだろw
0392nobodyさん
2012/07/18(水) 18:53:13.37ID:???0393nobodyさん
2012/07/18(水) 18:56:47.21ID:???>とりあえずCake使う時は、提供されてる機能を無理に使おうとしないことだ
>ちょっと試して期待した動作しなかったらやめる
>ちょっと試して期待した動作しなかったらやめる
>ちょっと試して期待した動作しなかったらやめる
>ちょっと試して期待した動作しなかったらやめる
>ちょっと試して期待した動作しなかったらやめる
>ちょっと試して期待した動作しなかったらやめる
>ちょっと試して期待した動作しなかったらやめる
>ちょっと試して期待した動作しなかったらやめる
なるほど、時間とかが足らないんだな
0394nobodyさん
2012/07/18(水) 21:00:57.07ID:???0395nobodyさん
2012/07/18(水) 21:32:59.34ID:???0396nobodyさん
2012/07/24(火) 23:11:24.05ID:???> formヘルパーにエラーを出すメソッドがある。
> APIリファレンス読んでみ
ねーじゃん!!!1.3だよ?!
0398nobodyさん
2012/07/24(火) 23:41:28.03ID:???いやないないない!ないだろ!
$form->error()じゃなくて、エラー全部出すやつだよ?!
0399nobodyさん
2012/07/25(水) 00:30:12.80ID:???にすると、全てのビューに関する処理は
スルーされるって認識で良いですかね?
0400nobodyさん
2012/07/25(水) 02:36:41.75ID:???※2.x以上しか知識ありません。念のため。
0401nobodyさん
2012/07/25(水) 02:38:31.88ID:???Dispatcher とかが裏でゴソゴソViewクラスに値を渡したりとかはやってるよ?
0402nobodyさん
2012/07/25(水) 10:48:07.13ID:???ビューをDBで管理しようと思いまして、>>399にすれば
余計な処理を実行させなくても良いのかな?と思っていました。
0405nobodyさん
2012/07/25(水) 22:22:16.55ID:???きっとDispatcher周りの大改造が必要になるぜ
無理とは言えないが、かなり仕様を理解しないとだめだろうな
この程度の質問にすらすら答えられるようじゃないとドツボにハマるよ
まぁでもどうなるのか見てみたい
進捗を報告してくれ
0407nobodyさん
2012/07/25(水) 22:56:14.30ID:???まとめたのを出すメソッドがないから何なんだ
0409nobodyさん
2012/07/27(金) 13:43:34.69ID:Ij5uT65n-----
・名前を入力してください
・メールアドレスを入力してください
-----
名前[ ]
!名前を入力してください
都道府県[▼東京都 ]
メールアドレス[ ]
!メールアドレスを入力してください
inputの下には自動で出してくれるんですが、
一番上にあるようなエラーの一覧が欲しいんです
本当にお願いします。
0411nobodyさん
2012/07/27(金) 14:01:38.23ID:???>>404してvalidationErrorsで検索してみ
0412nobodyさん
2012/07/27(金) 15:54:14.68ID:Ij5uT65nありがとうございます。入っていました。
ただ、 $this->Model->validationErrors にアクセスできません
themeView に Modelオブジェクトが無いと言われます
0413nobodyさん
2012/07/27(金) 15:59:54.55ID:???みたいなメソッドが無いか?って事だろ?
で、結論としては「無い」んだよ。
>>409みたいなことがやりたいなら$form->errorを全て書くか
>>404をしろよ。そこをまずは納得しろ。
0414nobodyさん
2012/07/27(金) 16:11:56.02ID:???1.3じゃあ入ってないの?
0415nobodyさん
2012/07/27(金) 16:11:58.09ID:Ij5uT65n分かりやすい説明ありがとうございます。
無いんですね。
> >>409みたいなことがやりたいなら$form->errorを全て書くか
あ、これでいいですね。
$form->error('inpu1');
$form->error('inpu2');
$form->error('inpu3');
$form->error('inpu4');
まだ試してないですけど、こうやればおkですよね。
これでいきます。
ありがとうございました!
0416nobodyさん
2012/07/27(金) 16:13:04.99ID:???0417nobodyさん
2012/07/27(金) 16:27:39.79ID:???それでいいのかよw
0419nobodyさん
2012/07/27(金) 17:18:46.30ID:???コピペじゃない方法でやることもできそうですね
誰か頼みました!w
0420nobodyさん
2012/07/27(金) 17:21:02.41ID:Ij5uT65nいや、エラー一覧を出してくれるのがベストでしたが、
無いというので、もうこれで妥協しました
0421nobodyさん
2012/07/27(金) 17:59:17.31ID:QJsfcWivAuthのログイン認証で手間取っています。
usernameとpassword以外にも、
certificationというフィールドが1かどうか、確かめさせてからログインさせたいのですが、
$this->Auth->userScope = array('certification'=>1);
をfunction beforeFilter()に追加しても、
実際のsql文的には追加されていないようで、certification関係なく、ログインできてしまいます。
どこがいけないでしょうか?
0422nobodyさん
2012/07/27(金) 18:54:38.02ID:???this->Auth->authenticateあたりに変更されたのって関係ない?
0424nobodyさん
2012/07/28(土) 05:06:27.70ID:NZVlXbv8$this->Auth->authenticate = array(
'Form' => array(
'scope' => array('User.certification'=>2)
)
);
でできました!
これで10時間以上格闘してたので本当に嬉しいです
ありがとうございました
0425nobodyさん
2012/07/29(日) 20:58:02.94ID:???cakephp1.3で、独自ドメインを取得、サーバーはロリポップレンタルです。
いままでは http://yyy.yyy.com/test/ にcakeをインストールしていましたが、
http://xxx.xxx.com/ でアクセスしたいと思い、
.htaccessを修正し、http://xxx.xxx.com でアクセスできるところまではいきました。
そこから、
いままで http://yyy.yyy.com/test/controller/ でアクセスしていたところも
http://xxx.xxx.com/controller でアクセスできるかな?と思ったら、URL直打ちならいけました。
でも、$html->link('test', array('controller' => 'controller') としても、実際にレンダリングされる
HTMLでは、http://xxx.xxx.com/test/controller にリンクされています。
これを、testの部分をなくすことはできないでしょうか?
0426nobodyさん
2012/07/29(日) 21:07:28.25ID:???前にテストしていた http://yyy.yyy.com/ は、既に他のファイルがいろいろあったので
cakephpテスト用に
http://yyy.yyy.com/test/app/...
http://yyy.yyy.com/test/cake/...
みたいな構成にしてたんですが、
今回はcakephpを一つ動かすだけのサイトにするつもりです。
で、前と同じように
http://xxx.xxx.com/test/app/...
http://xxx.xxx.com/test/cake/...
みたいに配置しているんですが、そもそも、http://xxx.xxx.com/app/にすべきだったんでしょうか?
.htaccessは、ドメイン直下、test/直下、app/直下、app/webroot直下の4つを修正しました。
0427nobodyさん
2012/07/29(日) 21:28:07.68ID:???結局インストールディレクトリをかえて、
http://xxx.xxx.com/app/になるように配置したら
期待したとおり、http://xxx.xxx.com/controller とHTMLに吐き出すようになりました。
これでいこうと思うのですが、
この配置がドメイン直下での運用の場合は正解なんでしょうか。
0428nobodyさん
2012/07/29(日) 23:35:13.63ID:???ひとつだけなら
example.com
もうひとつなら
example.org
サブドメインは自由
0429nobodyさん
2012/07/29(日) 23:45:55.88ID:???0430nobodyさん
2012/07/30(月) 00:12:58.18ID:???>>429
つhttp://tools.ietf.org/html/rfc2606
0431nobodyさん
2012/07/30(月) 00:18:16.96ID:???URIとファイルパスの書き方がぐちゃぐちゃだな。
ディレクトリ構造の記述にはプロトコルは関係ないだろ。
そんな質問の仕方をしてるってことはマニュアルを全然読めていない証拠だから
誰も真剣に答えてくれんよ。
0432nobodyさん
2012/07/30(月) 00:29:32.30ID:???そして「マニュアル通り」にしろ。
ほとんどのことはそれで解決できる。
それでも無理なときはもう一度マニュアル読め。
つまり、たいていのケースに対しての定石が既に用意されている。
ルールに縛られるのが窮屈だからといって安易に定石を離れることは
一時しのぎは出来るかも知れないが結局遠回りになる。
ブログの記事なんかを参考にする場合は、
マニュアルの読み方や定石の解説をしているものならいいが、
小ネタの披露などの類は定石を一通りマスターしてからだ。
0433nobodyさん
2012/07/30(月) 11:01:11.94ID:???レスありがとうございます。
指摘いただいたことを修正して改めて質問させてください。
http://example.com/ でアクセスしたいのですが、
マニュアルでは
/cake_install/
├/app
└/cake
と配置して、
DocumentRoot /cake_install/app/webroot
と設定すればいいとなっていました。
レンタルサーバーのため、httpd.confはいじれないので、
.htaccessにRewriteBaseを設定しました。
すると確かにhttp://example.com/でアクセスできるのですが、
cakeから出力されたHTMLでは、コントローラーへのアクセスURLが
http://example.com/cake_install/controller/
になっていました。
これを、http://example.com/controller/にしたかったんです。
そこで、cake_installのディレクトリを作らずに
/app
/cake
にしたところ、うまくいきました。
これが正しい配置なんでしょうか?
0434nobodyさん
2012/07/30(月) 13:14:23.48ID:???0435nobodyさん
2012/07/30(月) 15:31:19.13ID:???要するに解凍した cake ディレクトリの中身をそのまま ftp での一番上にぶちまけたってことかな?
ならば、公開時の設定としては推奨されていないが、
正常に動くかどうかという点に関してはOK。
ここ見れば分かるよね?
http://book.cakephp.org/1.3/ja/view/913/%E9%96%8B%E7%99%BA-Development
>すると確かにhttp://example.com/でアクセスできるのですが、
>cakeから出力されたHTMLでは、コントローラーへのアクセスURLが
>http://example.com/cake_install/controller/
>になっていました。
これはどこか設定が間違ってる
0436nobodyさん
2012/07/30(月) 16:35:51.07ID:???2以降はマシになったんかな?
でもctpテンプレに使うとかうちはなしだなあ、デザイナにコーディング頼めないじゃん
0437nobodyさん
2012/07/30(月) 17:55:19.65ID:???0438nobodyさん
2012/07/30(月) 18:06:30.07ID:???0439nobodyさん
2012/07/30(月) 20:03:51.92ID:???厨とか悪いことのような言い方されるから言い出しにくい雰囲気・・・
0440nobodyさん
2012/07/30(月) 21:12:22.01ID:???処理が明確になったんじゃないかな
引き換えに、コーディング工程数というか、タイプするキーの数は増えたけど
0441nobodyさん
2012/07/30(月) 21:15:21.67ID:qcTCojeX動かした事のある人いる?
0442nobodyさん
2012/07/30(月) 21:31:34.90ID:???0443nobodyさん
2012/07/30(月) 21:59:05.68ID:???そうです、cakeディレクトリを中身だけトップに入れました。
マニュアルの指定されたページを見ると、
http://www.example.com/cake_1_3/ でアクセスできますよね?ってことですが
/
└cake_1_3
├app
└cake
の構成だと、確かにhttp://www.example.com/cake_1_3/でアクセスできました。
> >すると確かにhttp://example.com/でアクセスできるのですが、
> >cakeから出力されたHTMLでは、コントローラーへのアクセスURLが
> >http://example.com/cake_install/controller/
> >になっていました。
>
> これはどこか設定が間違ってる
やっぱりなんか間違ってるんですね…
0444nobodyさん
2012/07/31(火) 08:43:55.59ID:???webroot, APP, CAKE をどこにおいても問題なく動く。
2.x の経験から言えば、 >>443 はパスの設定は自分で書かないとダメなんじゃないかな?
1.3のマニュアル読んだことはあまりないんで間違えてるかもしれんけど。
いまさら1.3には興味がわかないんであとは自分で調べてくれ。
0445nobodyさん
2012/07/31(火) 21:30:00.08ID:???ありがとうございます。
index.phpの設定ですが、
cake1.3のマニュアルによると、
/app
└/webroot
/cake
といった、普通の?配置にしない場合は、確かにindex.phpで場所を設定できるようでした。
http://book.cakephp.org/1.3/ja/view/915/%E5%BF%9C%E7%94%A8%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB
今回は配置は/cake_install以下に上記の通り配置して、
http://www.example.com/ でアクセスできるんですが、
$html->link('aaa', array('controller' => 'cont')
で出力されたURLがhttp://www.example.com/cake_install/cont になってしまうのを http://www.example.com/cont にしたいのです…。
■ このスレッドは過去ログ倉庫に格納されています