【PHP】フレームワーク CakePHP 11ホール目【v1.3】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2011/02/16(水) 21:52:35ID:zCTGjUMqCakePHPから派生した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
0338nobodyさん
2011/03/11(金) 10:16:22.95ID:???0339nobodyさん
2011/03/11(金) 10:17:13.31ID:???0340nobodyさん
2011/03/11(金) 11:21:00.08ID:???ありがとうございます。
モデル・ビューともに作成していませんでした。
scaffoldでは、必要ないみたいなことを読んだのですが、
違ったということでしょうか。
後で、アソシエーションを設定するモデルファイルを作成してみます。
0341nobodyさん
2011/03/11(金) 12:31:08.42ID:???(最近scaffold使ってないから記憶薄いけど)
0342nobodyさん
2011/03/11(金) 13:01:08.61ID:???気まぐれに入っていたりもする。
でもそのまま使うことはないからみんな放置してるんじゃないかな。
0343nobodyさん
2011/03/11(金) 13:12:04.29ID:???使い道がよく分からん。
0344nobodyさん
2011/03/11(金) 13:17:13.19ID:???使い方がよくわからん
0345nobodyさん
2011/03/11(金) 13:20:52.41ID:???0346nobodyさん
2011/03/11(金) 13:55:53.93ID:???コントローラとかモデルは小規模サイトだし必要ない
0347nobodyさん
2011/03/11(金) 23:09:11.08ID:34T7XTKb↑この問題が自分の環境でも起こっているんですが、
解決法などありますか?
Cookieコンポーネントを使って配列を書きこむと、一番最後の配列以外がArrayとなってデータが消えてしまいます。
Array
(
[0] => Array
[1] => Array
[2] => Array
(
[id] => 1
[ab] => 2
[cd] => 1
[ef] => 3
)
)
↑このように、同じデータを追加しているはずなのですが、末尾のデータしか残っていません。
0348nobodyさん
2011/03/11(金) 23:11:03.03ID:34T7XTKbこの記事でも同じようなこといっていますね。
「cakephp cookie 配列」などで検索すると出てきます。
0349nobodyさん
2011/03/12(土) 10:57:04.39ID:???Cookie::readの最後で
return $this->__values[$key][$names[1]];
//return Set::extract($this->__values[$key], $names[1]);
いいのかな。。
0350nobodyさん
2011/03/13(日) 23:51:06.58ID:JC24c2uV事前に何をsetしようがcreateしようが必ずtrueが帰ってくる。2日悩んだがお手上げ状態
たしけて
0352nobodyさん
2011/03/14(月) 03:25:24.81ID:???$this->Model->set($this->data);
if ($this->Model->validates()) {
$this->Model->save($this->data);
}
0353nobodyさん
2011/03/14(月) 10:38:15.65ID:3Afc8bliそのとおりやってるんだけど、どんな値を渡してもtrueが帰ってくる。
0354nobodyさん
2011/03/14(月) 17:45:24.61ID:???じゃ、文字コード疑ってみろ。モデルの。
たまにそこがShift_JISになっていて、エラーにならない時がある。
0355nobodyさん
2011/03/15(火) 11:45:26.02ID:pIi0VVUhUTF-8だったわ。
<?php
class Stock extends AppModel {
var $belongsTo = array('Item', 'Size', 'Color');
var $validate = array(
'name' => array(
'rule' => array('notEmpty'),
),
'item_id' => array(
'rule' => array('notEmpty'),
),
'size_id' => array(
'rule' => array('notEmpty'),
),
'color_id' => array(
'rule' => array('notEmpty'),
),
'quantity' => array(
'rule' => array('numeric'),
'message' => '半角数字で入力してください'
),
);
}
?>
なんだ?バリデーションのかき方間違ってるわけじゃないよな
ファイル壊れてんのかね?
0356nobodyさん
2011/03/15(火) 11:54:53.37ID:???なんでnotEmptyを配列にしてるんだw
'name' => array(
array(
'rule' => 'notEmpty'
)
)
こうだろ。もう少し勉強しろよ
0357nobodyさん
2011/03/15(火) 12:03:25.03ID:???'name' => array(
'rule' => 'notEmpty'
)
これでも動くよ。(むしろこっちが一般的かも知れない)
0358nobodyさん
2011/03/15(火) 15:15:08.89ID:???もう本体のソースにdebug()入れて目デバッグするしかないんじゃないの?
こんなところで聞くよりずっとはやいぜ。
0359nobodyさん
2011/03/15(火) 17:30:17.19ID:pIi0VVUhサンクス。
いろいろ試したが、
そのコードに、'required' => true,つけたらfalse帰ってきたわ。
'name' => array(
array(
'rule' => 'notEmpty'
)
)
↓
'name' => array(
array(
'rule' => 'notEmpty'
'required' => true,
)
)
0360nobodyさん
2011/03/15(火) 18:34:32.58ID:???冗談抜きでcookbookの例見ながらやれよ
0361nobodyさん
2011/03/15(火) 21:33:40.21ID:pIi0VVUhいや、ブックもAPIも毎日見てるよ。
何が間違ってる教えてくれ
>>369のやりかたで今のとこうまくいってるんだが
0363nobodyさん
2011/03/16(水) 00:11:30.27ID:H/WJFHhtrequiredが必要な設計が悪いんだよ。
0364nobodyさん
2011/03/16(水) 00:45:40.08ID:???だからそういう凡ミスするんだよ。開発プロセスを見直せ
0365nobodyさん
2011/03/16(水) 12:36:45.89ID:???0366nobodyさん
2011/03/16(水) 14:38:25.17ID:???0368nobodyさん
2011/03/16(水) 17:41:11.35ID:OBkWdnDA0369nobodyさん
2011/03/16(水) 19:10:01.24ID:aP3af6LXダウンロードできないんだが・・・。
さばおち?
0370nobodyさん
2011/03/17(木) 00:05:23.96ID:???cakeへのdonationはもうちょっと待ってくれw
0372nobodyさん
2011/03/17(木) 16:24:52.18ID:???$actsAsを$actAsって書いてた orz
0374370
2011/03/17(木) 18:09:13.88ID:???0375nobodyさん
2011/03/17(木) 20:41:47.41ID:???0376370
2011/03/18(金) 00:21:26.72ID:???いくつかサイトあるけど、どれもコントローラーは10個もないな
3〜8くらいか
0377nobodyさん
2011/03/18(金) 00:31:55.32ID:???俺が作ってるポータルサイトでも、30〜40はあるぞ。
0378nobodyさん
2011/03/18(金) 14:25:43.64ID:???0379nobodyさん
2011/03/18(金) 16:51:57.19ID:???0380nobodyさん
2011/03/18(金) 16:57:37.01ID:???0381nobodyさん
2011/03/18(金) 17:00:53.59ID:???0382nobodyさん
2011/03/18(金) 22:20:06.93ID:???0383nobodyさん
2011/03/19(土) 13:51:57.61ID:???それ以外を素のPHP(か独自クラスか)で作っている人いる?
0386nobodyさん
2011/03/19(土) 16:07:57.11ID:LrB5RKVBvalidation後、問題がなかったらpasswordを指定の暗号化(authsome)してからinsertしたいのですが、どうすればいいでしょうか?
一般的な方法をご教示いただければと思います。
0387nobodyさん
2011/03/19(土) 16:08:51.78ID:???そこまで多くのアクセスをさばくサイトを作ったことがないからわからんが
0388nobodyさん
2011/03/19(土) 16:33:34.19ID:???というかそれ以上でもDB部分の設計次第、データ次第という感じがする。
別サイトでは月1億PVでもcakePHPが原因で ということはおきてないです。
結局それくらいのPVになったらWEB複数台にしたり、DB分けたりして対処できてます。
0389nobodyさん
2011/03/19(土) 17:44:12.06ID:???俺がパフォーマンス出来になるのは、Ajaxの処理なんだけど、
そう言う点での遅いとか重いとか言うのは感じない?
例えば、ボタン押す→Ajax通信で指定データを取得→
閲覧しているWebページに結果を返す
って処理が、体感的に数秒かかる。
0391nobodyさん
2011/03/19(土) 18:30:44.32ID:???私の事例とは違うのでちょっとわからないです。
でも遅いのってだいたいDB周りですよ。
>>390
携帯向けサービスです。
ただ$this->Model->findとかは使ってないのでフルでcakePHPを使っているとは言えないです。
$this->Mode->queryでSQL文を書いて常に把握できるようにしてます。
0393nobodyさん
2011/03/19(土) 20:07:43.27ID:???findとかsaveとか使わないとなれば、Cake使う意味あるのかな?
って疑問に感じたんでさ。
0394nobodyさん
2011/03/19(土) 22:01:27.00ID:???もともとcakePHPを使う理由が、コードを読みやすくする(開発者以外が手を加える可能性があるため)
ことだったのであるとは思います。
cakeでなければ駄目だったかと言われると他のでも良かったですが。
ただfind部分の処理は結構重そうだったので、クエリキャッシュとかしてないのであればボトルネックになるのかもしれません。
0395nobodyさん
2011/03/20(日) 20:27:13.00ID:???0396nobodyさん
2011/03/20(日) 22:14:15.49ID:GCcZIJSQ0397nobodyさん
2011/03/20(日) 23:51:38.23ID:???0398nobodyさん
2011/03/21(月) 00:16:04.61ID:???0399nobodyさん
2011/03/21(月) 00:43:56.18ID:XkLv7npgapp/controllers/foos_controller.php
用意して、example.com/fooへアクセスして動いたのですが
example.com/にアクセスして
fooってテーブル使うようにするにはどのファイルをいじればいいのでしょうか?
app/controllers/pages_controller.phpでしょうか
0400399
2011/03/21(月) 02:09:09.74ID:XkLv7npg0401nobodyさん
2011/03/21(月) 20:54:35.99ID:???+----+------------------+------+
| id | email | flag |
+----+------------------+------+
| 1 | user1@example.jp | 0 |
| 2 | user2@example.jp | 1 |
+----+------------------+------+
ガタついてると思いますが上記のようなテーブルがあってflagは
0=仮会員
1=本会員
でメール認証で仮会員から本会員にとなります。
会員登録の際にemailにバリデートをかけたいのですが
DBを参照してフラグが0ならupdate、1ならisUniqueで弾くにはどうしたらよいのでしょうか?
cakephpのバージョンは1.3です
0402nobodyさん
2011/03/21(月) 22:43:32.95ID:fIwUydDAユーザーがメールを送る
↓
メアドを見て、
0403nobodyさん
2011/03/21(月) 22:50:03.53ID:???どこでバリデーションが必要になるのかわからんけど、メール認証後の登録の際のセッションIDでユーザー特定するのがセオリーなんじゃない?
本登録の際にemail情報は必要ないと思うが、どのタイミングでバリデーションするの?
0404nobodyさん
2011/03/21(月) 23:22:35.97ID:???バリデートをかけたいのは仮登録の際のemailフォームです
'email' => array(
"rule1" => array(
"rule" => 'isUnique_flag1',
"message" => "このメールアドレスは既に本登録されています",
),
"rule2" => array(
"rule" => 'email',
"message" => "メールアドレスを正しく入力してください",
),
"rule3" => array(
"rule" => 'notEmpty',
"message" => "メールアドレスを入力してください",
),
),
rule1のisUnique_flag1が欲しいのです
さらにいえばflag0のemailの登録があった場合はupdateをかけたいと思っております
分かりづらくてすいません
0405nobodyさん
2011/03/22(火) 00:59:49.73ID:???仮登録は普通空メから始めないか?
フォームから始めると登録する方も運営者側も面倒なことになりそう
フォームでメアドを入力させるとなると、複数のフィールドを見なきゃいけないので、isUniqueをそのままは使えないし
この辺を参考にして複数フィールドのチェックしてみたら?
http://dxd8.com/archives/212/
0406nobodyさん
2011/03/22(火) 16:50:27.43ID:???それ、携帯サイトだけだろ。
0408nobodyさん
2011/03/23(水) 02:19:41.25ID:???Cakeのdatabase.phpで接頭辞を指定した時、
モデルによって別の接頭辞を参照させる事って出来るのでしょうか?
0409nobodyさん
2011/03/23(水) 02:34:35.94ID:???$model->tablePrefix で接頭辞は設定できるよ
0410nobodyさん
2011/03/23(水) 04:31:57.56ID:???0411nobodyさん
2011/03/23(水) 17:03:31.26ID:???どのようにすればよいでしょうか?
0412nobodyさん
2011/03/23(水) 21:52:21.71ID:???0414nobodyさん
2011/03/24(木) 22:31:38.58ID:???0415nobodyさん
2011/03/25(金) 00:11:11.21ID:???0416nobodyさん
2011/03/25(金) 01:26:19.03ID:???CodeIgniter並とは言わないが
0417nobodyさん
2011/03/25(金) 01:54:30.06ID:???appコントローラーに書いたコードをやっぱりコンポーネントに書こうとか。。
と考え出すとリファクタリングの沼に入る。
小さいアプリならOK。大規模アプリならOK
しかし中途半端な規模のアプリだと途端に境界性が曖昧になる。
0418nobodyさん
2011/03/26(土) 11:46:01.37ID:???悪いことをするつもりはありませんがw wikileaksのハッカーに興味をもっております
彼らは、どうやってするのでしょうか?非常に興味があります。よろしくお願いします。すいません。マルチします。
0419nobodyさん
2011/03/26(土) 11:57:35.71ID:???0420nobodyさん
2011/03/26(土) 15:25:23.14ID:???ハッカー入門の定番といえばHow To Become A Hacker
http://cruel.org/freeware/hacker.html
0421nobodyさん
2011/03/26(土) 16:09:31.08ID:???wget --no-check-certificate https://github.com/cakephp/cakephp/tarball/1.3.8
0422nobodyさん
2011/03/28(月) 22:15:30.46ID:???0423nobodyさん
2011/03/28(月) 22:21:48.45ID:???0424nobodyさん
2011/03/28(月) 22:50:29.41ID:???0425nobodyさん
2011/03/28(月) 23:52:08.29ID:???0426nobodyさん
2011/03/30(水) 22:32:56.78ID:???のテーブルの場合、ルーティングどうしてる?
「会員の日記に新規登録」みたいな要件の時、
普通に/user_diary/add みたいな形?
それともルーティングして /user/diary/add みたいに分けるとか?
ピュアPHPで言うとディレクトリ分けして /user/diary.php、/user/diary_add.php
みたいなファイル名になると思うけど、Cakeの場合どうしたらいいか悩む。
0427nobodyさん
2011/03/30(水) 22:55:24.34ID:???なぜuserが必要になるのか
0428nobodyさん
2011/03/30(水) 23:21:05.99ID:???あるいは、ぐるなびのようにお店が日記書く場合は?
前者はadmin_diaryで後者はshop_diaryにテーブル名がなると思うんだが。
0429nobodyさん
2011/03/30(水) 23:32:41.51ID:???0430nobodyさん
2011/03/30(水) 23:55:08.49ID:???それなら新規登録とか編集の場合はどうするの?
0431nobodyさん
2011/03/30(水) 23:58:44.61ID:???0432nobodyさん
2011/03/30(水) 23:58:59.11ID:???0433nobodyさん
2011/03/31(木) 01:46:28.99ID:???prefixの事でもないんだろ?
0434nobodyさん
2011/03/31(木) 01:47:51.69ID:???全然答えが違うのは俺が糞質問したせいですかそうですか
0435nobodyさん
2011/03/31(木) 09:51:47.82ID:???0436nobodyさん
2011/03/31(木) 10:17:31.74ID:PPG+iO3gユーザ日記
/diaries/add
管理者日記
/admin/diaries/add
admin部分の文字列は自由に変更できます
■ このスレッドは過去ログ倉庫に格納されています