【PHP】フレームワーク CakePHP 10ホール目【v1.3】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2010/11/01(月) 21:43:26ID:???CakePHPから派生した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
0002nobodyさん
2010/11/01(月) 21:44:22ID:???CakePHP1.3系のダウンロード
http://github.com/cakephp/cakephp1x/archives/1.3
CakePHP 1.3.x API
http://api13.cakephp.org/
1.2から1.3への移行ガイド
http://book.cakephp.org/ja/view/1561/
CakePHP 1.3の新機能
http://book.cakephp.org/ja/view/1572/
■1.2系
CakePHP1.2系のダウンロード
http://github.com/cakephp/cakephp1x/archives/1.2
CakePHP 1.2.x API
http://api12.cakephp.org/
■Lithium(li3) PHP5.3+
http://rad-dev.org/lithium/
0003nobodyさん
2010/11/01(月) 21:45:16ID:???【PHP】フレームワーク CakePHP 9ホール目【v1.3】
http://hibari.2ch.net/test/read.cgi/php/1279844006/
【PHP】フレームワーク CakePHP 8ホール目【1.3】
http://pc11.2ch.net/test/read.cgi/php/1268874059/
【PHP】フレームワーク CakePHP 7ホール目【v1.2】
http://pc11.2ch.net/test/read.cgi/php/1251789126/
【PHP】フレームワーク CakePHP 6ホール目【v1.2】
http://pc11.2ch.net/test/read.cgi/php/1236563737/
【PHP】フレームワーク CakePHP 5ホール目【v1.2】
http://pc11.2ch.net/test/read.cgi/php/1229669539/
【PHP】フレームワーク CakePHP 4ホール目【v1.2】
http://pc11.2ch.net/test/read.cgi/php/1213892680/
【PHP】フレームワーク CakePHP 3ホール目【本命】
http://pc11.2ch.net/test/read.cgi/php/1205475360/
【PHP】フレームワーク CakePHP 2ホール目
http://pc11.2ch.net/test/read.cgi/php/1194976228/
【PHP】フレームワーク CakePHP
http://pc11.2ch.net/test/read.cgi/php/1163850802/
0004nobodyさん
2010/11/01(月) 21:45:57ID:???【PHP】PHPフレームワーク総合スレ14
http://pc11.2ch.net/test/read.cgi/php/1253912143/
【PHP】下らねぇ質問はID出して書き込みやがれ 97
http://pc11.2ch.net/test/read.cgi/php/1279833891/
Zend Framework Part4
http://pc11.2ch.net/test/read.cgi/php/1265721684/
symfony PHPフレームワークpart2
http://pc11.2ch.net/test/read.cgi/php/1268753684/
[PHP][フレームワーク]CodeIgniterスレ
http://pc11.2ch.net/test/read.cgi/php/1177683436/
【PHP】Ethna part.2【国産フレームワーク】
http://pc11.2ch.net/test/read.cgi/php/1186096518/
【PHP】フレームワークMapleに舌鼓
http://pc11.2ch.net/test/read.cgi/php/1122105465/
0005nobodyさん
2010/11/01(月) 21:46:39ID:???PhpMatsuri2010(予定)
(10月2-3日)
CakeFest 2010 (Chicago, llinois, USA)
http://cakefest.org/
CakeMatsuriTokyo2009
http://matsuri.cakephp.jp/
CakePHPカンファレンス東京(2008)
http://conference.cakephp.jp/
連載:CakePHPで高速Webアプリ開発|gihyo.jp … 技術評論社
http://gihyo.jp/dev/serial/01/cakephp
CakePHP 規約ワードメーカー WordMaker for CakePHP Conventions
ttp://www.cpa-lab.com/tech2/inflects/
Free CakePHP Book (Matt Curry and Mark Story)
http://www.pseudocoder.com/free-cakephp-book/
あとこのへんとか(初心者向けTIPS)
http://www.avatarfinancial.com/pages/cake/
CakePHP Note
http://www.garacter.com/notes/CakePHP+Note/ni:5
CakePHPを使ったMVC設計のベストプラクティス - Sooey
ttp://www.sooey.com/journal/2008/03/26/717/
Qdmail(日本語メールコンポーネントとして利用可能なライブラリ)
ttp://hal456.net/qdmail/
10分で作るCakePHPアプリ for Windows
http://p4life.jp/cake/
■ver1.1用
CakePHP プログラマーズ リファレンスガイド
http://cakephp.jp/doc/
CakePHPフレームワークによる快速WEB開発 |codezine
http://codezine.jp/a/article/aid/670.aspx
0006nobodyさん
2010/11/01(月) 21:48:51ID:???・ver1.3系
Pocket詳解 CakePHP辞典
http://www.amazon.co.jp/gp/product/4798027456
CakePHP 1.3によるWebアプリケーション開発―オープンソース徹底活用
http://www.amazon.co.jp/dp/4798026646/
CakePHP 1.3 (独語らしい)
http://www.amazon.co.jp/dp/3827327709/
・ver1.2系
CakePHP1.2ガイドブック
http://www.amazon.co.jp/dp/4839932468/
CakePHPによる実践Webアプリケーション開発
http://www.amazon.co.jp/dp/4839930651/
オープンソース徹底活用 CakePHPによるWebアプリケーション開発
http://www.amazon.co.jp/dp/4798022225/
CakePHP ポケットリファレンス※ver1.2beta
http://www.amazon.co.jp/dp/4774135038
CakePHP徹底入門
http://www.amazon.co.jp/dp/479811717X
PHPで作る携帯サイトデベロッパーズガイド
http://www.amazon.co.jp/dp/4798024767/
・ver1.1系
CakePHPガイドブック
http://www.amazon.co.jp/dp/4839924317
Fast CakePHP
http://www.amazon.co.jp/dp/4774133418
0008nobodyさん
2010/11/01(月) 23:29:53ID:vnR/i9a6乙
0009nobodyさん
2010/11/02(火) 06:12:53ID:???APIなどがWebにありますが、調べるたびにインターネットアクセスする
のは大変なので、ローカルに一括でDLできるか、Windowsヘルプファイル
になっているものを探しています。
ご存知の方、所在を教えてください。
0010nobodyさん
2010/11/02(火) 13:20:57ID:???0011nobodyさん
2010/11/02(火) 14:03:23ID:???このページ保存しとけばいい
0012nobodyさん
2010/11/02(火) 14:10:09ID:???で作成したフィールドに、必須入力項目のValidationをかけたいのです。
Validation ruleにnotEmptyを設定したのですが、きちんと入力しているにも関わらず
エラーが発生してしまします。どう書けばよいものでしょうか?
0013nobodyさん
2010/11/02(火) 14:10:41ID:???何か質問があった場合、どこで聞くのが一番解決に近そうでしょうか?
公式の掲示板は過疎ってそうな感じなので
0014nobodyさん
2010/11/02(火) 14:13:48ID:???0015nobodyさん
2010/11/02(火) 14:25:47ID:???datetimeのような連想配列にnotEmptyは出来ない。
beforeValidateで事前に調べて、1つの配列に代入してからチェックしろ。
0016nobodyさん
2010/11/02(火) 16:49:23ID:???0018nobodyさん
2010/11/02(火) 18:22:19ID:???0019nobodyさん
2010/11/02(火) 18:37:52ID:???変な煽りとかは早いけど
0020nobodyさん
2010/11/03(水) 06:30:28ID:4NSD+GsH複合主キーが使えないってどんなカルト宗教だよwwwwwwwwww
そんなんだからいつまでたっても子供のオモチャなんだよwwwwwwwwwwwwwww
0021nobodyさん
2010/11/03(水) 17:58:56ID:???大人のオモチャは複数の主キーが使えるのか・・・
0022nobodyさん
2010/11/03(水) 23:14:10ID:???モデルのバリデーションで、アクションによって分岐したい時に
使いたいと思いますが、マニュアルを見る限り、アクションが取得できません。
0023nobodyさん
2010/11/04(木) 00:09:12ID:???ってテスト用のファイルが入ってるから、
bakeでテストしない場合は必要ないですよね?
0024nobodyさん
2010/11/04(木) 03:21:53ID:???モデルに独自メソッド(action渡してvalidateみたいな)を設けるのが素直でいいよ。
実際は取得できるけどhackじみてる。
0026nobodyさん
2010/11/04(木) 14:05:36ID:???Alertモデル内で、
$this->User->findDataFromDatabase();
このように、Userモデル内に作ったファンクションを呼び出すには
どうすればよいでしょうか?
コントローラに書いているように、 public $uses = 'User'; としてみましたが、
エラーが出てしまいました。
002726
2010/11/04(木) 14:54:17ID:???下記のようにやっても上手くいかないのです。。
(1.3です)
<?php
App::import('Model','User');
$User= new User;
class Alert extends AppModel {
public $name ="Alert";
public function saveAlerts($alert) {
$user = $User->findDataFromDatabase('email',$data);
002826
2010/11/04(木) 15:05:14ID:???public function saveAlerts($alert) {
$this->User = ClassRegistry::init('User');
$user = $this->User->findDataFromDatabase('email',$data);
0029nobodyさん
2010/11/04(木) 23:08:41ID:???Configure::write("debug" , 0);
は書いてるけど。
0030nobodyさん
2010/11/05(金) 09:01:55ID:???0031nobodyさん
2010/11/05(金) 13:04:12ID:???0032nobodyさん
2010/11/05(金) 17:06:29ID:???└/diary
└add.ctp
viewをこういう階層にしてURLが↓みたいにしたいと思います。
http://example.com/user/1/diary/add
(意味は、usersテーブルのIDが1の、日記を追加)
こういう表示の仕方って出来るのでしょうか?
0033nobodyさん
2010/11/05(金) 17:32:18ID:???http://api.cakephp.org/class/controller#method-Controllerrender
render()の引数fileをつかうとか、actionかbeforeRender()で。
やったことないけど。
0034nobodyさん
2010/11/05(金) 17:33:08ID:???cakephp routesで検索してみて
003532
2010/11/05(金) 17:45:48ID:???routes.phpに↓と書いてルーティングして
Router::connect(
'/user/:id/diary',
array('controller' => 'user_diary', 'action' => 'index', 'id'),
array('id' => '[0-9]+')
);
コントローラをディレクトリ分けする場合は、bootstrap.phpに
$controllerPaths = array(
ROOT.DS.APP_DIR.DS.'controllers'.DS.'user'.DS,
ROOT.DS.APP_DIR.DS.'controllers'.DS,
);
と書けば動きました。アドバイスありがとうございます。
0036nobodyさん
2010/11/06(土) 18:34:51ID:???MySQL 5.1.50
モデルを普通に更新してsaveしてもmodifiedが更新されない。
ぐぐって、default NULLにするとかをやっても駄目。modifiedをnullにしてsaveしても駄目。
誰か知恵を貸してくれ。
特に変わったことなどはしてません。
0037nobodyさん
2010/11/06(土) 21:31:47ID:???createdはinsert時にちゃんと入る?
modifiedを適当な日時に指定して更新したらどうよ?
あと更新するSQLを$this->Foo->save('id'=>1);とか適当なシンプルなものにしてみてどうなるか
0038nobodyさん
2010/11/07(日) 02:31:33ID:???0039nobodyさん
2010/11/07(日) 11:04:33ID:???※コントローラ
1 function addAlerts
or
2 function add_alerts
1のやり方はPHPの規約通りですが、URLに大文字が混ざってしまうので
悩んでおります。
0040nobodyさん
2010/11/07(日) 11:25:58ID:???それ以外なら1
0041nobodyさん
2010/11/07(日) 12:05:01ID:???バージョンはApache2.2 + cake1.2.8です。
apache_get_modules()で確認した限りではmod_rewriteは動いており、
cakeで軽くアプリを作ったところ画像も表示されています。
ただ、welcomeページは文字だけのシンプルな表示になります。
mod_rewrite設定以外に何か必要な設定があれば教えてもらえないでしょうか。
0042nobodyさん
2010/11/08(月) 10:55:16ID:???CSS,IMGのパスが間違っているんじゃないかとエスパー。
0043nobodyさん
2010/11/08(月) 21:38:00ID:???form->year使って、それっぽいことはできたんだけど、そもそもyearヘルパーって
挙動がちょっと(値が入る配列とかが)特殊なので、普通にセレクトボックスで出力したいんだけど
0044nobodyさん
2010/11/08(月) 21:50:56ID:???$form->select()
にarray(1=>1,2,3,4,5...................)
って渡しとけよ
あとこのへん読んで自分で決めてくれ
http://api.cakephp.org/class/form-helper
0045nobodyさん
2010/11/08(月) 22:20:54ID:???わかりにくいんだよ!
004643
2010/11/08(月) 22:25:37ID:???値が入る配列とかが特殊って書いてるんだけど…
具体的に言うとUser.ageって名前でセレクトボックス作ると、data['User']['age']['year']に値が入る
他にもIDの付き方とか、最後にYearがついたりして、微妙に使いづらい
(monthとかdayとセットで使う前提で作られてる感じ)
そういう力業の解決方法はあるんだろうけど、標準で用意されてないのかな、と。
0047nobodyさん
2010/11/08(月) 22:31:10ID:???0050nobodyさん
2010/11/09(火) 00:38:40ID:???0051nobodyさん
2010/11/09(火) 00:49:02ID:???$options = array_combine($options, $options);
ってよくやる
0052nobodyさん
2010/11/09(火) 01:42:44ID:???0053nobodyさん
2010/11/09(火) 12:25:52ID:???どうすればよいでしょうか? 1.3です。
マニュアルを読むと、httpステータスコードしか指定できないから、
無理なのかな。。
$this->redirect(array('action' => 'edit', $id));
(この$idに変数をいれたらエラーが。)
http://book.cakephp.org/view/982/redirect
005453
2010/11/09(火) 12:35:03ID:???http://cakephp.1045679.n5.nabble.com/Does-redirect-clear-variables-td1274496.html
0057nobodyさん
2010/11/09(火) 13:55:59ID:???ログインしたままの状態で数時間そのままにし、別のページを閲覧すると
ログインが切れてログインフォームに移動します。
改めてログインしようとログイン情報を入れても失敗します。
しかし、同じ内容をもう一度入力するとログインできます。
おそらくセッションの問題とは思うのですが、
この現象を解決する方法はないでしょうか?
0058nobodyさん
2010/11/09(火) 16:30:27ID:???Auth使ってるあたりのコードを書いてみて
login() , logout() とか beforeFilter() とか
0059nobodyさん
2010/11/09(火) 20:47:00ID:???Cookbookの内容と同じです。
http://book.cakephp.org/ja/view/1250/Authentication
他の人は>>57の症状にならないんですか?
割と頻繁に発生するんですが。
0060nobodyさん
2010/11/09(火) 21:18:33ID:???function get() {
$this->User = ClassRegistry::init('User'); //use User model
$data = $this->User->find($conditions);
}
このように、ファンクションのたびに、 ClassRegistry::init('User') で
他のモデルを呼び出しています。
しかし、一つのモデル内で一括して適用させるには
どうすればよいのでしょうか?
もしくは、一括で適用させると重くなるので、今まで通り毎回使う時だけ
呼び出したほうが件名なのでしょうか?
0061nobodyさん
2010/11/09(火) 21:28:34ID:???>しかし、一つのモデル内で一括して適用させるには
>どうすればよいのでしょうか?
なにいってっかわかんね。
あそしえーしょんされてるなら
$this->Userでもともと呼べるけど、そうじゃないんだよね?
だったらなんか根本的に設計がダメダメだと思うわ
そのモデルでやるべきことじゃない
006260
2010/11/09(火) 21:50:35ID:???質問がややこしくすいません。
サンプルがわかりくいですが、データベースの操作は
まったく関係なしという形の場合ではどうでしょうか?
つまり、
Aのモデル内に function setAlerts() というファンクションがあり、
このファンクションをBのモデル内の操作で利用したいといった形です。
その時、Bのモデル内で
$this->A = ClassRegistry::init('A');
$this->A->setAlerts();
このようにしてます。 でも、毎回 $this->A = ClassRegistry::init('A'); を呼び出すのはめんどくさいなあ、
でも、全体に適用すると重くなるのかなあと悩んでます。
0063nobodyさん
2010/11/09(火) 22:34:45ID:???0064nobodyさん
2010/11/10(水) 14:28:56ID:???FormHelperは積極的に使ってるんですが。
0065nobodyさん
2010/11/10(水) 14:42:58ID:???0066nobodyさん
2010/11/10(水) 15:21:21ID:???linkは重くなるってのはググったら良く出てくるな。
ま、プログラムをかますという事はそれなりの処理を入れているわけで
必然的に、素のHTMLよりも重くなるのは当たり前。
0067nobodyさん
2010/11/10(水) 15:57:05ID:???0072nobodyさん
2010/11/11(木) 03:35:51ID:???usesが長くてウゼー
0073nobodyさん
2010/11/11(木) 11:37:02ID:???適切にアソシエーション貼ればそんなにならなくない?
あとuses使うより、ClassRegistry::init()使った方が良いよ
0074nobodyさん
2010/11/11(木) 11:41:50ID:???0075nobodyさん
2010/11/11(木) 11:57:51ID:???多くなりがちだね
0076nobodyさん
2010/11/11(木) 12:18:59ID:???そこで名前登録したり、試合したり、初期アイテムやお金を与えたり全部入ってるから
モデルをたくさん使うんだが、モデル同士は普段から関連付けるほどでもなかったりする
ユーザーのマイページでも、各種パラメータを表示するため使用モデルがアホみたいに増える
パラメータが多いので、モデルはできるだけ分けないと100カラムぐらいのテーブルができてしまう
>>73
usesだとコントローラが問答無用に全部初期化するけど、各アクション内で使うものだけ自分でinitしろってこと?
0077nobodyさん
2010/11/11(木) 13:00:43ID:???そう、usesよりCR::initのほうが推奨されてるから書いたけど
その使い方でController内に少数のアクションしかないならどっちでも良いかも
0079nobodyさん
2010/11/11(木) 20:33:51ID:???0080nobodyさん
2010/11/11(木) 22:30:25ID:???同一のプログラムで全く弄っておらず、設定も変えておらず、
それなのにMissing Controllerというエラーが出る時と出ない時があるのですが、
これは何故ですか?
バージョンはcakePHP1.35で
プログラムは「cakePHP1.3によるアプリケーション開発」のP49~
フォームの利用というところのコードです。
0081nobodyさん
2010/11/11(木) 22:51:56ID:???http://example.com/user/1/add
というURLでアクセスできるようにしています。
ビューの$paginator->sortでリンクされるURLを
変更する方法って無いですよね?
$paginator->options(array('url'=>"id:1"));
をビューに追加して、リンクパラメーターに付加させる事は出来ますが
URLがhttp://example.com/user/add/id:1/page:1/sort:id/direction:asc
のようになってしまいます。
0082nobodyさん
2010/11/11(木) 23:23:27ID:???でよくなかったっけ?タメシテない
0083nobodyさん
2010/11/11(木) 23:37:16ID:???$this->Auth->allow('index','logout');
//このように一括で設定
$this->account = $this->Auth->user();
$this->set('account', $this->account ); //send account data to view
}
ログイン後のページで、ユーザーのステイタスを画面に
表示させています。
AuthからIDを取って、setでビューに送る
コードをアクション毎に書くより、上記のようにbeforeFilterで
一括してもよいでしょうか?
これは重くなる原因だからやってはいけない方法か不安なので
アドバイスいただければ幸いです。
0085nobodyさん
2010/11/12(金) 00:01:51ID:???慣れてきたらソース読んだほうがいいよ
http://api.cakephp.org/classes
ここからクラス探して読めばいい
0086nobodyさん
2010/11/12(金) 00:03:36ID:???毎回DBに取りに行くわけじゃなく、Session読みに行くだけだから
それほど重くない処理だと思う。
あとはDebugKitなり入れて、負荷確かめながらやってみて
008780
2010/11/12(金) 03:20:40ID:???http://hogehoge/hage
で操作するとMissingContorollerのエラーが出て
http://hogehoge/hage/
だとエラーが出ないです
何故こうなるか意味が分からないんですが、一応、報告まで^^;
0088nobodyさん
2010/11/12(金) 03:52:21ID:???apacheの設定でそういうのあったっけ?どのhttpdかしらんが
0089nobodyさん
2010/11/12(金) 04:01:22ID:???自作CMS作っていた時に同じような症状に出くわした。
0090nobodyさん
2010/11/12(金) 13:49:56ID:???loadModelってのもあるみたいだけどどっちがいいの?
loadModelはコントローラでしか使えないんだっけ?
0092nobodyさん
2010/11/12(金) 14:30:37ID:???0093nobodyさん
2010/11/12(金) 14:40:37ID:???0094nobodyさん
2010/11/12(金) 15:02:03ID:???ClassRegistryって比較的新しいのよ
で、それができていろいろ不要になった感じ
loadModelもそう。というかloadModelが、かな
0095nobodyさん
2010/11/12(金) 20:40:46ID:???App::import('model', 'User');
$User = new User;
よりいいかんじ?
0097nobodyさん
2010/11/12(金) 22:52:31ID:???URL上はhttp://example.com/comment/で表示させたいと思っています。
prefixとは逆の処理のイメージなのですが、その様な事は可能なのでしょうか?
可能な場合、ルーティングの書き方を教えてください。
0099nobodyさん
2010/11/13(土) 13:08:07ID:???調べてみたのですが、コントローラーに文字列を付与して
指定とは別のコントローラーを実行するような設定箇所がありません。
だから↓な感じの指定方法しか思いつかないです・・。
$array = explode('/', $_GET['url']);
$contoroller = 'user_'.$array[0];
Router::connect('/:controller/*',array('controller' => $controller));
0100nobodyさん
2010/11/13(土) 13:32:07ID:???http://book.cakephp.org/ja/view/542/Defining-Routes
これ読んで理解できないって言うなら、諦めた方がいいと思う。
0101nobodyさん
2010/11/13(土) 14:14:22ID:???■ このスレッドは過去ログ倉庫に格納されています