【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/
0624nobodyさん
2012/02/17(金) 22:18:17.74ID:/liskI/Yあなたはないかもしれないが、こちらは一杯あるよ
0625nobodyさん
2012/02/17(金) 23:19:48.84ID:???たまたまだろうけど
0626nobodyさん
2012/02/17(金) 23:35:34.41ID:???痒いところに手が届くログイン管理プラグインが無いのが痛い
0627nobodyさん
2012/02/18(土) 00:41:23.45ID:???0628nobodyさん
2012/02/18(土) 07:14:15.10ID:???webroot直下に置いたhtmlファイルとか、好き勝手に動かせるよ。
webroot/phpmyadmin
とかを本番機で動かしてるし。
ここでhtmlなり、ctpなり、好きなファイル置けばいいのでは?
0629nobodyさん
2012/02/18(土) 11:05:37.21ID:???0630nobodyさん
2012/02/18(土) 11:52:58.83ID:???楽しさを求める奴って一定の割合でいるけど何なの?世間ナメてるの?
0631nobodyさん
2012/02/18(土) 14:10:48.45ID:???0633nobodyさん
2012/02/18(土) 19:32:45.39ID:???0634nobodyさん
2012/02/18(土) 19:52:11.24ID:???戦闘機とは勝手が違うかもしれんが、職人であり整備士でもあるウェブ開発者が『メンテつまらない』なんて、間違っても言えない言葉だと思うがな。
作品に対する愛着と言うか、親心はないのかと思う。
0635nobodyさん
2012/02/18(土) 19:54:15.84ID:???愛があってもつまらんものはつまらん
0636nobodyさん
2012/02/18(土) 19:54:39.40ID:???0637nobodyさん
2012/02/18(土) 20:03:42.12ID:???「自分の子供は糞までかわいい」って話じゃね?
子供の世話とバグ取りや保守作業って同じ感覚でやってたわ
むろんどっちも楽しい。
しかもメンテっつーか仕事なら、やっただけ対価までもらえるんだぞ?
毎日wktkしとるわw
0638nobodyさん
2012/02/18(土) 22:23:06.59ID:???他人が作ったものの尻拭いはごめんだ
0639nobodyさん
2012/02/18(土) 23:12:25.71ID:???ビルだって自動車だってそうだろ。
仕事として受けたならメンテのプロとしてやらないと。面白くないべ。
0640nobodyさん
2012/02/19(日) 00:03:12.80ID:???楽しくいないのは店長や客が嫌な奴だったとか
人間関係の面がほとんどだろ。
0641nobodyさん
2012/02/19(日) 00:21:41.04ID:???俺は仕事は楽しくなくちゃ嫌だわ。
0642sage
2012/02/19(日) 00:25:24.87ID:???0643nobodyさん
2012/02/19(日) 09:24:53.81ID:???ブラウザの「戻る」ボタンを押して前の画面に戻る際に、
必ずサーバーに問い合わせるようにしたいのですが、
キャッシュの設定を「session_cache_limiter('nocache')」にしていても
「ページの有効期限切れ」が表示される場合があります。
(具体的には、画面遷移時に一度入力チェックでエラーを表示した後、
次画面に遷移し、ブラウザの戻るボタンを押した場合。)
「ページの有効期限切れ」が表示されず、前画面に戻るには
どのような対応が必要でしょうか。
(ページの有効期限切れは、具体的に何を見て判定しているのでしょうか)
0644nobodyさん
2012/02/19(日) 14:32:18.81ID:???0645nobodyさん
2012/02/19(日) 22:02:58.12ID:???そういうことだろうな。
仕事でも趣味でも、開発すること自体楽しけりゃ不平不満なんて出ないどころか毎日Happyさね。
>>643
一般的に考えれば、フォーム(hiddenも含む)データじゃね?
単純な話で、なんかページ同士のパラメータの受け渡しに失敗してるんじゃないかな?
0647nobodyさん
2012/02/20(月) 13:39:28.34ID:???例えばサイトのほとんどがHTMLなんだけど、
お問い合わせフォームとか新着情報の表示とかシステム化が
必要な箇所ってありますよね?
0648nobodyさん
2012/02/20(月) 16:42:43.00ID:???おかげで数時間ムダにしたわ…
0649nobodyさん
2012/02/20(月) 17:31:52.64ID:???値セットしてないカラムも全部NULLになっちゃって。
0650nobodyさん
2012/02/20(月) 18:44:49.57ID:???0651nobodyさん
2012/02/20(月) 19:27:11.23ID:???どうもです。ぐぐったら解説も出てきました。
http://d.hatena.ne.jp/cakephper/20091221/1261385134
$data初期化してるのにヘンテコな値が入るので???になってたんですが、
よく考えたらモデルの方も初期化せなあかんのですね。
0652nobodyさん
2012/02/20(月) 19:44:33.38ID:???COUNT(column)とかで、面倒な挙動が多い・
0653nobodyさん
2012/02/20(月) 20:16:24.86ID:???実は既にあすこの会員でして・・・
しかし、NULLを避けたいのにcakePHPが勝手に挿入するのを避けられないというー-;
for ($x = 0; $x < 100; $x++) {
$data = null;
$this->cookie->create(false);
$data = $this->cookie->findById($x);
if ($data == FALSE) {
continue;
}
レコードが存在しない時は処理をスキップしたいんですけど、
比較式おかしいですかね?
0654nobodyさん
2012/02/21(火) 00:21:24.73ID:???0655nobodyさん
2012/02/21(火) 13:06:27.12ID:???RCの後に数字がないってことは、
次がもう正規リリースなのかな?
0656nobodyさん
2012/02/21(火) 14:08:16.13ID:???0657nobodyさん
2012/02/21(火) 19:27:57.09ID:???0658nobodyさん
2012/02/21(火) 21:15:24.57ID:???できれば最新のもの使ったほうがウマイのでしょか?
0659nobodyさん
2012/02/21(火) 22:01:38.94ID:???新規で作るのなら2系で作っておいた方がいいと思うよ
1.3で作ってると下手に1.3のクセがつくだろうし
今勉強中ならRCも出たことだし、サービスリリースまでにはstable出るだろうから2.1使っちゃっていいんじゃない
0661nobodyさん
2012/02/21(火) 22:26:00.87ID:???そうですかー・・
http://book.cakephp.org/2.0/ja/appendices/2-0-migration-guide.html
変更点相当あるみたいですね。
後から変えたくなっても不便だし、
1.3じゃなきゃいけないような理由もないし、
早いとこ乗り換えたほうが良さそうですね。
2.1落としてきます。
0662nobodyさん
2012/02/21(火) 22:28:23.70ID:???俺の見立てでは後1年は情報や書籍は揃わないと思う
0664659
2012/02/21(火) 23:19:39.41ID:???今までのプロジェクトは全部1.xで作ってきたけど、最近全部1.3.14に上げた
とりあえずそれらは2系に上げる予定無し(1.3から2.0への全面書き換えはだるいのでしばらくは放置すると思う)
2.0のstableが出てからは全部2.0で作ってる
>>659にも書いたけど、RC出たからもう2.1に移ろうかと思ってる
個人的には複雑なことをやってないせいもあるのか2.0の情報が少ないという感じはない
昔からcakeは「公式ドキュメント読んで分からなかったらソースを読め」ってスタンスだしね
ああ、でも公式ドキュメントはまだ日本語ないから英語が全く出来ないとちょっときついか
0666nobodyさん
2012/02/22(水) 01:12:36.89ID:???0667nobodyさん
2012/02/22(水) 01:34:03.12ID:???お前ら頼りなさすぎ
0668nobodyさん
2012/02/22(水) 09:23:59.33ID:???0669nobodyさん
2012/02/22(水) 10:44:07.07ID:???updateAllで、
リレーション設定をしている他モデルで使用しているテーブルのデータを
保存することはできませんか?
Bコントローラ内
$condition = array('ModelA.neko' => 'mike');
$updatefield = array('ModelA.tag' => 'hoge');
$this->ModelB->updateAll($updatefield, $condition);
と書いても
General error: 1 near ".": syntax error
が出ます。
0670nobodyさん
2012/02/22(水) 13:47:15.70ID:???と言うより、2.0については使用者も少なく回答できないんじゃないか?
1.3系の質問は回答されてるし。
頼りないなら他行けば良いんだよ。別に質問スレでもないんだから。
0671nobodyさん
2012/02/22(水) 18:20:43.51ID:???0672nobodyさん
2012/02/22(水) 20:21:09.89ID:???2つの関連性の全くないテーブルA,Bがあります。
ある画面で、その2つのテーブルのデータをまとめて編集し、
1回のPOSTでValidationをかけて保存させたいのですが、
どうすればよいものでしょうか?
A,Bの項目をまとめたCモデルを作って、CモデルにValidationルールを書く。
POSTされたデータはCモデルでValidationを行う。
Validation後にAモデル、Bモデルにデータを分割して、それぞれで保存処理を行う。
こんな感じ?
0673nobodyさん
2012/02/22(水) 20:46:24.93ID:???BモデルはBモデルでバリデーションするだろ?
モデル毎にバリデーションできるんだから。
0675nobodyさん
2012/02/22(水) 21:06:14.46ID:???0680nobodyさん
2012/02/23(木) 15:41:37.63ID:???0681nobodyさん
2012/02/23(木) 16:23:25.15ID:???本家だと数字ついてないけど日本のサイトだと1版って書いてあるから微妙だなw
>>680
公式な発表はないと思うけど、もうリリースがほとんど止まってる感じだからなあ・・・
っていうか1.1はいつのまにか公式から消えてるけどどこかでアナウンスあったっけ?
0682nobodyさん
2012/02/23(木) 22:30:09.21ID:???0683nobodyさん
2012/02/23(木) 22:38:03.57ID:???0684nobodyさん
2012/02/23(木) 22:40:40.54ID:7dkJC+lD$this->paginate = array(
'conditions' => array(
"not" => array(
"Foo.bar" => "false"
)
),
'limit' => 2000,
'order' => array('Foo.date DESC')
);
$this->set('foo', $this->paginator());
と書いたら、「barsテーブルにFoo.barなんてない」ってエラーがでました
コントローラ名からモデルを補完してるんでしょうか?
どうしたらfoosテーブルのデータをページネイションできますか?
ご教示くださいますようよろしくお願いいたします
0685nobodyさん
2012/02/23(木) 23:41:08.20ID:7dkJC+lDを
$this->set('foo', $this->paginate('Foo'));
に書き換えたらいけました
0686nobodyさん
2012/02/24(金) 04:00:19.56ID:???プライマリーキーがないモデルにsaveしようとしたけど、エラー出ました。
0688nobodyさん
2012/02/24(金) 12:24:37.97ID:???→写真
のようなアソシエーションで繋がっているテーブルがあったとして、
会員情報を削除した時、その会員が投稿した日記や写真を
削除する必要があります。
その場合、会員情報を削除した後、日記・写真を削除しますか?
それとも全てアソシエーションで繋げてdeleteAllで削除しますか?
0689nobodyさん
2012/02/24(金) 13:26:33.24ID:???好きにすればいいんじゃね
deleteAllがアソシエーション含んだ削除って誤解してる気がするんだけど気のせい?
0690nobodyさん
2012/02/24(金) 13:56:47.10ID:???0691nobodyさん
2012/02/24(金) 14:01:26.76ID:???まさに勘違いしてました・・。
アソシエーションの削除が上手く行かないので
自分は個別に削除するやり方をしているのですが、
勘違いだったようです。すみません。
0692nobodyさん
2012/02/24(金) 19:09:30.64ID:???find('all')で複数県取得したデータを、1.3まではviewで$xml->serialize()に
データを渡していました。
2.0からはxmlHelper自体が廃止となって、代わりにXml::buildを使えとのことですが、
1.3と同様の複数県のデータを渡すと例外となります。
1.3と同様の結果が取得できるように死体のですが・・・
0693nobodyさん
2012/02/24(金) 19:10:11.66ID:???0694nobodyさん
2012/02/25(土) 15:36:54.21ID:???データベースを使うほどじゃない簡単なデータ保存処理のためにtxtファイルを読み書きしたいのですが、どこに置いてもうまくアクセスできません。
自分で用意したファイルにアクセスするにはどうしたらいいのですか?
0695nobodyさん
2012/02/25(土) 16:53:26.47ID:???0696nobodyさん
2012/02/25(土) 17:03:08.52ID:???テキストファイル自体は多くて10個程度のワードを保存&編集したいだけなのですが・・・
0697nobodyさん
2012/02/25(土) 17:25:39.89ID:???ものすごい遅いんですが、解決法はあります?
みなさんどうしてます?
0698nobodyさん
2012/02/25(土) 17:33:00.25ID:???0700nobodyさん
2012/02/25(土) 18:04:29.58ID:???自分で、model、またはdata sourceを書く。
csvならdata sourceあった希ガス
0702nobodyさん
2012/02/25(土) 18:06:37.16ID:???>>700
ありがとうございます
まずはdata sourceについて勉強してみます
0705nobodyさん
2012/02/25(土) 22:48:10.62ID:???ラジオボタンの場合、項目を選択せずに送信すると
空データではなく、存在しないものとして扱われます。
ですので、バリデーションルールでnotEmptyを指定しても
正しく機能しないのですが、どうすればいいのでしょうか?
0706nobodyさん
2012/02/26(日) 13:38:17.41ID:???0707nobodyさん
2012/02/26(日) 14:15:41.40ID:???0710nobodyさん
2012/02/28(火) 11:46:10.73ID:???where句に使用しているカラムにインデックスはるとか、
joinしてるなら、その辺も確認したほうがいい。
0711nobodyさん
2012/02/28(火) 15:16:02.31ID:pz8Lp3oaルーティングで躓いています。
以下のようなコントローラを用意しました。
class EntryController extends AppController {
var $name = "Entry";
var $autoRender = false;
function index(){
die('index');
}
function success(){
die('success');
}
}
http://example.com/entry/
は正しく実行され、'index'が表示されるのですが、
http://example.com/entry/success/
は、Segmentation faultが発生し、Abortします。
routes.php などの設定は、敢えて変更せず使用しています。
同じような現象を経験した方、いらっしゃいますか?(そもそも、2.0.6使っている人いるんだろうか)
0712nobodyさん
2012/02/28(火) 15:21:47.73ID:???また、http://example.com/entry/index は表示される?
0713nobodyさん
2012/02/28(火) 15:25:44.20ID:pz8Lp3oasuccess以外でも一緒です。
/entry/index もダメです。
/entry/index/abc/def もダメです。
0714nobodyさん
2012/02/28(火) 16:50:04.76ID:???Router::parse($request->url);
の結果を見ると、以下のようにルーティングが間違っているようです。
array(5) { ["controller"]=> string(7) "success" ["named"]=> array(0) { } ["pass"]=> array(0) { } ["action"]=> string(5) "index" ["plugin"]=> NULL }
Routerがちょっと怪しいので、調べてみます。
0715nobodyさん
2012/02/28(火) 17:13:46.37ID:???/lib/Cake/Network/CakeRequest.php に、おかしな箇所を見つけました。
下記引用の下から5行目、「$baseUrl」なんですが、どこでも宣言されていないのでif自体に意味がないようです。
protected function _base() {
$dir = $webroot = null;
$config = Configure::read('App');
extract($config);
if (!isset($base)) {
$base = $this->base;
}
if ($base !== false) {
$this->webroot = $base . '/';
return $this->base = $base;
}
if (!$baseUrl) {
//★ここを改編したらうまくいった
//$base = dirname(env('PHP_SELF'));
$base = '';
0717nobodyさん
2012/02/29(水) 02:33:19.83ID:???公式のマニュアルを見ているのですが、
/pizza/pizzaOrders/index
でアクセスする方法は分かるのですが、
/pizza/
でアクセスするにはどうしたら良いのでしょうか?
普通に/app/controllers/pizza_controller.phpを作ればいいと思ったのですが、
作ってもアクセスエラーになります。
これってルーティングの設定になるのでしょうか?
0718nobodyさん
2012/02/29(水) 08:54:37.66ID:???1000件しか表示しない!って決めたら、
function paginateCount($conditions = null, $recursive = 0, $extra = array()) {
return 1000;
}
こうしてもいいんですかね?
0719nobodyさん
2012/02/29(水) 15:57:45.32ID:OuUO3AKRプラグイン関係ない
ルーティングの問題
0721nobodyさん
2012/02/29(水) 21:04:59.32ID:???/app/plugin/pizza/controllers/pizza_controller.php
(要するにプラグイン名と同名のコントローラー)を作って、indexアクションを作れば
ルーター触らなくても/pizza/でアクセス可能だよ。
0723nobodyさん
2012/03/01(木) 05:51:29.65ID:???同じのでもサイトのコンテンツによって変えてる
■ このスレッドは過去ログ倉庫に格納されています