【PHP】フレームワーク CakePHP 13ホール目【v2.0】at PHP
【PHP】フレームワーク CakePHP 13ホール目【v2.0】 - 暇つぶし2ch168:nobodyさん
11/11/30 02:02:38.21
>>167
ちょっと古い記事ですが
URLリンク(blog.syuhari.jp)

テーブルからデータを取得するコードはモデルにメソッドとして書いて
コントローラで取得して、ビューに渡すという流れです

169:nobodyさん
11/11/30 11:57:10.26
>>166
俺のところでは出来るが

>>168
これ、ページネーション(paginate)を使いたい場合は使えないんだよな・・・

170:nobodyさん
11/11/30 13:04:25.29
>>169
すみません、バージョン教えてもらえますか?
こちら2.0です。

171:nobodyさん
11/11/30 16:17:33.31
バージョンだわ。俺は1.3系使ってるし。

172:nobodyさん
11/11/30 22:39:37.21
いよいよ2.0の話題が増えていくのか

173:nobodyさん
11/12/01 01:14:05.48
app/webroot/files/sample.phpから
app/views/layouts/layouts.ctp
を参照したいんですけど、相対パスってどうなりますか?

174:nobodyさん
11/12/01 01:15:41.08
むずかしいもんだいだね

175:nobodyさん
11/12/01 01:19:47.08
すみません../../views/layouts/でいけました
webrootなので複雑に考えてました

176:nobodyさん
11/12/01 01:36:07.41
逆にlayouts.ctpから参照するときは
files/sample.phpなんですね

177:nobodyさん
11/12/01 21:07:27.25
2.0系って、従来のプラグイン使えるのかな
移行ガイドにはそのあたり触れられてないのが気になる

178:nobodyさん
11/12/02 02:48:35.30 LODTi230
CakePHP + Oracleってあまり相性良くない?
Oracleってオートインクリメント使えないんだけど
CakePHP側でうまくやってくれるとか?

179:nobodyさん
11/12/02 04:44:28.87
そもそも使えるの?

180:nobodyさん
11/12/02 22:19:51.28
オートインクリメントが使えなかったら
RDBMSとして成り立たないだろ。
お前があほなだけ。

181:nobodyさん
11/12/02 23:44:46.73
Oracle側でシーケンスとトリガーでやります

182:nobodyさん
11/12/03 00:46:21.36 ewJKbRKA
CakePHP2.0でSqlite3のファイルにアクセスしたいんだけど
どうもうまくいきません。以下のようなエラーが出ます。

Missing Database Table
Error: Database table xxx for model Xxx was not found.

もしかして、CakePHP2.0ではsqlite3のファイルにアクセスできない?

183:nobodyさん
11/12/03 00:51:11.36
Missing Database Table って言ってんだろw

184:nobodyさん
11/12/03 09:33:17.39
>>182
Model.phpが無いんじゃないの?
cake bakeしてみたら。

185:nobodyさん
11/12/03 13:53:22.68
CakePHP辞典の人が2.0バージョンも出してくれたらいいのにな。
今は明らかに情報が足りなすぎる。

186:nobodyさん
11/12/03 16:12:59.14
>>182
eat cake, PDO版 SQLite3 を使う
URLリンク(miztools.so.land.to)

187:nobodyさん
11/12/04 01:19:55.36
sqliteいいの?mysqlしかつかったことない

188:nobodyさん
11/12/04 02:29:45.94
システムが違う。
sqliteはテキストデータにRDBMSっぽい書き込みをして使用する。

189:nobodyさん
11/12/04 02:37:58.60 vxdOAUX9
sqliteはPHP5からのデフォルトバンドルだぜ?
しかもDBサーバを立てることもなく一つのファイルで完結だ。
俺はこんないいものを知らない。

190:nobodyさん
11/12/04 02:43:31.05
同意せざる終えない。使い勝手良すぎ

191:nobodyさん
11/12/04 15:48:53.97
app/app_controller.phpを作って、
function beforeFilter(){
echo '<!--'.$this->params['controller'].'-->';
}
とやってみたんですが、特定のコントローラだけ$this->params['controller']で出力されません
何が原因なんでしょうか?
他とその出ないコントローラの違いで思い当たるのはそのコントローラにもbeforeFilterが指定してあることくらいです

192:191
11/12/04 15:50:38.27
>>191に追記です
コントローラ値が空なだけだと思ったら、どうやたapp_controller自体実行されてなかったようです
(普通に文字を出力させてもでませんでした)
御教示いただけたら幸いです

193:nobodyさん
11/12/04 15:54:37.24
>>191
コントローラ内のbeforeFilter内で
parent::beforeFilter();
ってやってる?

194:191
11/12/04 16:19:33.30
>>193
それでした
app_controllerを作ったのがはじめてだったので、決まりごとを理解してませんでした
ありがとう御座いました

195:nobodyさん
11/12/07 14:22:49.37 XLyuG92u
cakephp 1.3.13を使ってcakeError()の情報をXMLで返したのですがうまくいきません。
通常のデータは以下のようなことでViewをXMLにしています。
var $helpers = array('Text', 'Xml');
public $components = array('RequestHandler', 'Security');
function beforeRender() {
$this->RequestHandler->respondAs('xml');
$this->viewPath .= '/xml';
$this->layoutPath = 'xml';

しかし、app_error.phpに
function errorXXXX($params) {
$this->helpers[] = 'Xml';
if ($this->controller->RequestHandler->isXml()) {
$this->controller->RequestHandler->renderAs($this->controller, 'xml');
}
$this->controller->render('errors', 'default');

とやってデバッグすると、内部の$outに正常にXMLが入っているのですが、クライアント
にわたりません。なにか特別のことをしなければならないのでしょうか。

196:nobodyさん
11/12/07 17:18:20.77
検索処理で該当データなしの場合、「(検索条件)に一致する情報は見つかりませんでした。」みたいなメッセージを出力させたいのですが、
どこにどう記述するべきでしょうか?Controller?View?

197:nobodyさん
11/12/07 18:02:05.03
View


198:nobodyさん
11/12/07 21:33:41.84
Viewに決まってるだろ

199:nobodyさん
11/12/07 23:38:47.74
>>196
controllerかmodelで分岐させて、controllerでset
viewの出したい箇所に変数を<?php echo $message ?>

200:nobodyさん
11/12/07 23:41:58.93
>>199
いや、View内で分岐だろ

201:199
11/12/07 23:45:59.78
うちはmodel::findのif(empty($data))の分岐でviewに渡す文字列またはarray。
viewの方にもif(isset())で文字列またはarray(リスト表現)

202:nobodyさん
11/12/08 01:31:10.64
CakePHPはPHP5.3に完全対応できないだろうな。
PHP5.3の恩恵を受けることのできるフレームワークはfuelphpしかない。
CakePHPの時代も終わりか。

203:nobodyさん
11/12/08 01:32:48.80
>>202
スレあるんなら誘導してくれよ

【php】fuelphpについて語ろうぜ
スレリンク(php板)

204:nobodyさん
11/12/08 01:37:07.11
アクセス修飾子にvarが使われてる時点で、すごい気持ち悪い。

205:nobodyさん
11/12/08 02:27:45.30
DebugKit、2.0の環境で使えてます?

LAMP環境で
var $components = array('DebugKit.Toolbar');
とAppControllerに書くと、画面が真っ白になる・・・
xampp環境だと問題ないんだけど。

206:nobodyさん
11/12/08 02:47:03.37
Lithiumはどうなったのよ

207:nobodyさん
11/12/08 09:13:39.91
Cakeオワコン過ぎ
技術情報とかぐぐっても2009年とかの前のバージョンの記事しか出ないし
便利なプラグインなんかも大体その頃に作られてて、今は放置
大きめの英語の掲示板で技術質問をしても、1日1個の書き込みもない過疎っぷりでレスが付かない
おワットる

208:nobodyさん
11/12/08 10:23:40.21
逆に他のフレームワークだと書き込みは多いのか?

209:nobodyさん
11/12/08 16:08:22.57
以前のような盛り上がりは無くなったね
っていうか、前のバージョンでもさほど動作が変わらないから書き直すほどでも無いしなあ…
でもそういうバージョンの違いがあってもちょっと直すだけで動くと言うことを新規参入者は知らないから、
今から始めようという人には不親切な環境かもね
cookbookも日本語になってないし

210:nobodyさん
11/12/08 16:27:06.15
えー
find('all')かfindAllかとか、大きな違いで戸惑うと思うけどなあ
他にも色々変わっていて困ったことがあった

211:nobodyさん
11/12/08 18:21:25.83
>>210
そのくらいは最初にブログチュートリアルで学ぶかマイグレーションガイド見てください

212:nobodyさん
11/12/10 06:31:35.05 dP9DBevc
早く2.0のcookbook日本語化しろよ。
どんだけ情報少ないんだよ。
ちんたらしてるとユーザー逃げるぞ。

213:nobodyさん
11/12/10 19:52:45.95
よっしゃ、まかせろ!

214:nobodyさん
11/12/10 21:39:38.00 XSFB8P6r
掲示板に画像UPの機能付けようとしてて、現在メディアプラグインを
使おうとしてるんですがうまくいきません。
「The file cannot be transferred from or to location.」と表示されて
先に進めず、力量不足で問題の切り分けもできない状態です・・・
メディアプラグインを使われてる方、アドバイスお願いします。

現在の環境はMacでXAMPP,php5.29,cakephp1.3,mediaplugin1.3です。

215:nobodyさん
11/12/11 02:28:53.15
>>214
使ったことないからわからんけど、軽くググった感じだと、たぶんファイルの書き出し先がちゃんと指定されてないんじゃね

216:nobodyさん
11/12/11 18:29:54.09
ログイン機能があったのですがChromeだけセッションが保持されなくなってしまいました。
なにか原因としてかんがえられますか

217:216
11/12/11 19:19:22.12
すみません
Cookie削除したら解決しました

218:nobodyさん
11/12/11 20:39:39.12
>>213
まだですか

219:nobodyさん
11/12/11 20:56:58.63
>>215
レスありがとう御座います。
現状を報告すると、
xamppのtempフォルダまではちゃんと、ファイルが上がってました。
しかしそこからプラグインが指定している、weroot/media/transfer/img/
フォルダには移動されていませんでした。
パーミッションを777にしても駄目だったので今からソースを追ってみます。

進展があったらまた、こちらに報告します。

220:nobodyさん
11/12/11 21:06:56.91
>>219
パス間違えました
webroot/media/transfer/img/ です。

221:215
11/12/11 21:11:51.64
>>220
サーバー側までファイルは来ていて意図するところに書き出せないと言うことは、やっぱりそういうtypo系のミスじゃないかなー
あとはファイルを置くディレクトリの階層浅くして別のところに作って試してみるとか

222:nobodyさん
11/12/11 21:43:21.91
>>221
少し進展があったのでご報告します。

今までチュートリアル系のブログを見ながら試していたのですが
最新のヘルプを見るとadd.ctp(登録用view)に追加する記述が変わっていました。

今まで
echo $form->create('Hoge',array('action'=>'add','type'=>'file'));
echo $this->element('attachments', array('plugin' => 'media'));

新しい
echo $form->create('Hoge',array('action'=>'add','type'=>'file'));
echo $form->input('file', array('type' => 'file'));

新しいもので試した所、ファイルはアップロードされていましたが
$hasManyで設定したテーブルにファイルの情報が保存されていませんでした。

----
プラグインの制作者様が細かいバージョンで仕様変更されているようなので
注意して進めていきたいと思います。
また、進展がありましたら報告します。

223:nobodyさん
11/12/12 11:11:03.41
Cakeの実行速度が遅いので、なるべく急いで他のフレームワークに移行したい場合
おすすめがあるとしたら何でしょうか?
移植のしやすさと得られるパフォーマンスの改善のバランスが良いもの
んなもん経験者にしかわからんと思うが、もしいたら

224:nobodyさん
11/12/12 11:29:31.97
なるべく急いで他のフレームワークを取得できるなら
Cakeの実行速度を上げる方法を学んだ方が良いですよ。

225:nobodyさん
11/12/12 13:18:51.48
>>223
どこがネックで遅いのか書くとより良い回答が期待できると思う。
どこがネックかもわかってないなら、まずやることはフレームワークの移行ではない。

226:nobodyさん
11/12/12 13:33:57.79
App::import()が遅いです

227:222
11/12/12 15:26:43.56
メディアプラグインで画像アップロード機能を実装しようと
してましたがもう無理です。
添付されたヘルプと、ソースを追って行った時の処理が違うので
修正する為のコストが多すぎます。

こんな事なら最初から全部自分で書けばよかった。

228:nobodyさん
11/12/12 16:38:37.11
こんなガタガタのフレームワーク使ったら、そうなるわな…
MVCの本当に基本フレームワークとしては普通に使えるから
それ以上の機能は自分で書いた方がいい

229:nobodyさん
11/12/12 17:46:20.08
てか、画像アップロードの仕組みってそんなに難しくないんだから
自分で作ればいいのに。フレームワーク使う前の関数・クラスとかあるだろ。

230:nobodyさん
11/12/12 17:57:52.56
フレームワーク使うと、何故かフレームワークの機能を使わなくちゃならない気分になるんだよな
俺もCakeのヘルパーとかプラグインとか最初試して、結果試した時間は全部無駄になったな
結局自分で作って元気に動いてるよ

231:nobodyさん
11/12/12 18:14:26.06
App::import()が遅いなら普通にinclude・requireすればいいのと一緒だな

232:nobodyさん
11/12/12 18:22:41.27
CakePHPで、DBが死んでる時はこっちのコントローラに分岐ってことをやりたいのですが
DB接続できないとモデルのコンストラクタがエラーになって、そこで処理が止まっちまいます

これを避けるにはcake以下を直接書き換えるしかない?

233:nobodyさん
11/12/12 22:02:32.47
pluginは有志開発だから、過剰な期待しちゃいかんよね

234:nobodyさん
11/12/12 22:15:59.53
メディアプラグインは2.0でうごくん?

235:222
11/12/12 22:21:11.57
>>229
セキュリティ的にちゃんとした物が書ける自信がなかったので
プラグイン使おうと思いました。
>>230
今回は裏目に出たけど、他人のソースを読めてよかったと思う事にします。


画像うpについては↓のプラグインがさくっと動いたので今回はこれで行く事にします。
URLリンク(github.com)
制作者様(?)の解説動画↓
URLリンク(zenpre.net)

では、名無しに戻ります。お騒がせしました。

236:nobodyさん
11/12/12 22:26:02.72
>>234
1.3でぼろぼろだから2.0は厳しいと思う。
作者がgithubで「自分の為に作ってるプラグインで、今忙しいごにょごにょ」
って言ってたから自分で修正できないならやめとけ。

237:nobodyさん
11/12/13 10:15:11.41
結局、誰の助言も聞かずに自分で探して終了か。
画像アップロード如きで「セキュリティが~」とか言っちゃう奴が
他人の作ったプラグインをすんなりと受け入れるというのが
おかしいとは思わないんだろうな。

頑なに意思を変えないなら、人に質問しなきゃ良いのに。

238:nobodyさん
11/12/13 11:31:08.57
なんか陰湿でキモい

239:nobodyさん
11/12/13 15:08:02.43
うかつに質問も出来ないこんな2ちゃんねるじゃ

240:nobodyさん
11/12/13 15:53:33.42
自分で分かるならわざわざ質問するなとは思わないか?

241:nobodyさん
11/12/13 16:19:08.03
>>239
ぽいずん

242:nobodyさん
11/12/14 00:20:14.28
>>240
自分の中で80くらいがんばって無理だったらネットで質問しつつ後の20の努力をする。
質問に回答もなく、後の20がんばっても無理だったら諦めて違う方法を模索する。

243:nobodyさん
11/12/14 01:34:17.83
いや、回答出してるじゃん

244:nobodyさん
11/12/14 17:39:11.08
CodeIgniterは覚えたからCakePHPも覚えたいと思うんですけど難しいよ


245:nobodyさん
11/12/14 17:40:34.96
モデルってデータベースに接続しないといけないの?
モデルに変数でデータを入れててコントローラーからそれらの変数を取得ってできないの?

246:nobodyさん
11/12/14 17:41:52.04
グローバル変数みたいなことか?出来ると思うけど。
あと、データベース使わなくても使えるよ。

247:nobodyさん
11/12/14 23:57:19.24
Railsのせいでモデル=データベースの1テーブルって
間違った考えが広まってしまったよな。

248:nobodyさん
11/12/15 00:06:20.83
4

249:nobodyさん
11/12/15 03:00:05.66
モデル名とコンポーネント名が重複してるとコンポーネントの方が優先されてモデルにアクセスできなくなるのって仕様?
UserモデルがあるところにUserコンポーネントも作っちゃうと$this->User->save()とかがundefined methodになってしまう

250:nobodyさん
11/12/15 11:44:42.72
同名ならそりゃそうだ

251:nobodyさん
11/12/15 11:46:40.70
またCakeの関数と重なるアクション名を付けてうまく動かなかったよ
すぐ参照できる一覧とかねーのかよ
つーかPHPてnamespaceないわけ?なにこの糞言語


252:nobodyさん
11/12/15 12:26:04.28
>>251
PHP5.3以降ではnamespace使えるけど、
Cake2.0は動作環境にPHP5.2系も入れてるので互換性のために仕方ない部分もあるのでは。

FuelPHPみたいに最初からPHP5.3以降で作られてるやつはコアでnamespaceサポートされてたりするし。

253:nobodyさん
11/12/15 13:24:42.38
PHPって後からつけたしつけたし、つぎはぎみたいな言語だし
フレームワークは苦労するわな

254:nobodyさん
11/12/15 17:12:04.31
>>250
やっぱそうなのか
一つのモデルに対して、同名のコントローラーとコンポーネントを作れると名前がそろっていて綺麗なんだがなあ・・・

たとえばUserModelに対してeat_cake_countをアップデートする処理とかはUserComponentに書きたい
そういうときはUsersComponentって名前にすればいいのかな
なんかその辺のコンポーネントの分け方(ネーミングルール)のセオリーみたいなのがよくわからないんだよね
UpdateComponentって分け方にすると、とんでもなく巨大なファイルになりそうだし

255:nobodyさん
11/12/15 17:32:59.52
それはモデルに書くべきじゃないの?
コントローラーは薄く、モデルは厚く

256:nobodyさん
11/12/15 18:14:13.62
>>251

せめて

function actionIndex()
function actionView()

みたいな作りになってればいいんだけどね。

257:nobodyさん
11/12/16 13:25:33.43
Modelの中身が突如出力されだしたんですが消し方知ってる方いませんか?
URLリンク(www.dotup.org)



258:257
11/12/16 13:34:08.67
自己解決 <php がありませんでしたw

259:nobodyさん
11/12/16 19:10:30.97
1つのレコードの1つのカラムを更新したい場合、
findで目的のレコードを取り出してsaveするのと
updateAllで1つだけ更新するのとでは、どちらが速いですか?

260:nobodyさん
11/12/16 21:55:12.50
<php じゃ動きません

261:nobodyさん
11/12/16 22:46:31.07
一人で開発する分にはフレームワークいらない
CakePHPだと逆に遅くなる。
PHPは頭よりも手を動かしてなんぼだと思う。
フレームワークは頭を動かす比重が大きくなる。
設計部分が特にそう。
極端に言えば変数が上書きされないようクラス化しておけば実運用では問題ない。
スパッティーコードにもメリットはあって頭使わなくても最速でコーディングできる。
関数の共通化を考える時間があれば手を動かしてた方がいい。後でリファクタリングで十分。

262:nobodyさん
11/12/16 23:38:25.39
一生のうちPHPで書くアプリケーションが3つほどまでで、書き直しを一切しないというなら完全に同意してもいい

263:nobodyさん
11/12/17 00:03:51.26
>スパッティーコードにもメリットはあって頭使わなくても最速でコーディングできる。
ワロタ
学生の課題ならそれでいいんじゃね

264:nobodyさん
11/12/17 06:04:20.02
セッションが設定した時間内で切れてしまうのですが、
原因として何が考えられますか?

core.phpでは以下のようになっています。
Configure::write('Session.timeout', '31536000');
Configure::write('Session.start', true);
Configure::write('Security.level', 'low');

ちなみに、サーバーにアップロードすると自動的に切れてしまうのですが、
ローカルでは大丈夫(もしくは切れるまでの時間が長い)なんですよね・・・

265:nobodyさん
11/12/17 06:11:18.00
Configure::write('Session.save', 'php');
Configure::write('Session.checkAgent', true);
あと関連しそうな設定は上記になっています。忘れていました。
他のsession関連の設定はコメントアウトされています。

266:nobodyさん
11/12/17 09:24:53.68
1つのレコードの1つのカラムを更新したい場合、
findで目的のレコードを取り出してsaveするのと
updateAllで1つだけ更新するのとでは、どちらが速いですか?

267:nobodyさん
11/12/17 11:42:27.08
>>266
findする意味がわかんないんだけど。
saveするだけが一番早いだろうに。

268:nobodyさん
11/12/17 14:55:06.91
select id from posts where user_id = 3;
update posts set title = 'hogehoge' where id = 5;



update posts set title = 'hogehoge' where user_id = 3;

さてどっちが速いかね

269:nobodyさん
11/12/17 15:59:01.03
user_idがユニークでインデックスあたってれば、後者のほうが速そう

270:nobodyさん
11/12/17 18:54:27.72
>>267
findしないと、idがわからない

271:nobodyさん
11/12/17 18:58:31.20
>>268
後者が速いよな。
CakeではupdateAllか。それ以外方法ないよな?

272:nobodyさん
11/12/17 19:59:48.04 6Ny+9Cbj
エレメント使うと Starting to render ってHTMLにコメントが入っちゃうんですけど
これ消す方法ないですか?

273:nobodyさん
11/12/17 21:10:11.26
>>272
debugが0なら消える

274:nobodyさん
11/12/18 04:48:44.53 9T9v3cA3
CakePHP2.0 + SQLite3で
arning (512): _cake_model_ cache was unable to write 'default_"xxx"' to File cache [CORE\Cake\Cache\Cache.php, line 310]
みたいな警告が出るんですが同じ症状の人いません?

275:nobodyさん
11/12/18 18:19:44.28
>>223
どこが遅いかの原因解明をまず行うべきです。

SQLレベルなのか、画面描画なのか、CakePHPのせいなのかetc
ユーザー数増加によるアクセス過多も問題になることはありますね。
根本的に解決しない可能性もあります。

276:nobodyさん
11/12/18 18:27:15.86
>>259
やりたい事をそのまま2つの処理で書いて、debugでSQLが出力されますので、
それをMySQLのオプティマイザーなどの時間が計測できる機能で実際に試してみては?

レコード数の多い・少ないにも関連しそうなので、
テストする際には1か月後、1年後などの予測されるレコード数で実行することを忘れずに。

277:nobodyさん
11/12/19 21:46:59.93
HABTAMで関連付けられた、投稿-タグのテーブルの検索ってどうやるんでしょうか。
やりたいことは、特定のタグを持った投稿を取得する、という単純なものです。
配列は以下のようになっていて、ConditionにTag.name => $tagname などとしても取得できませんでした
Array
(
 [0] => Array
  (
   [Post] => Array
    (
     [id] => 60089
     [message] => testtest
    )
   [Tag] => Array
    (
     [0] => Array
      (
       [id] => 8
       [name] => タグ1
       [PostTag] => Array
        (
         [id] => 26
         [post_id] => 60089
         [tag_id] => 8
        )

      )
     [1] => Array
        :
        :
    )
  )


278:nobodyさん
11/12/19 22:57:47.33
>>277
Set::extract使うべし

279:nobodyさん
11/12/20 05:19:51.29
え、そういう問題?

280:nobodyさん
11/12/20 11:14:14.85
>>278
SQLでとってくる方法はないですか?
「タグ1と関連づいた投稿を全て取得する」というfindができれば教えてほしいんですが、、、

281:nobodyさん
11/12/20 11:48:28.25
Cakeってさ、findでデータ取ってきた時に
モデル名のキーが頭に付くのがジャマでしょうがないよね
仕方ないからいつもこうやってる
$data = $this->find( ....
$data = $data['モデル名'];

282:nobodyさん
11/12/20 12:16:02.08
>>277
findするときに、joinsオプション使って明示的にJOINする

283:nobodyさん
11/12/20 12:36:01.65
>>281
よくやる。

284:nobodyさん
11/12/20 14:59:31.58
>>281
俺は↓する
$data = $this->User->find('all');
$user_data = $data['User']

これだとどのモデルか分かりやすいし。
ただし、アソシエーション使ってる場合などは、適切でないかも。

285:nobodyさん
11/12/20 16:07:14.62
>>281
$this->data = $data
ってやると、formヘルパーの値valueに自動でセットするためにキーがついてからね。

おれはあんまり気にしたことがない。

286:nobodyさん
11/12/20 17:30:41.74
>>284
find('all');ってテーブルの全レコード取り出してるの?
あんまりそういう機会ないなあ
あとfind('all')だと配列が返ってくるから、2行目はエラーになるんじゃないか

287:nobodyさん
11/12/20 17:36:47.14
>>281
じゃまくせえとは思うけどアソシエーションを考えると仕方ないなと思ってそのまま使ってる

288:nobodyさん
11/12/21 08:45:16.75
CakeEntity使えよ。色々捗るぞ

289:nobodyさん
11/12/21 10:15:07.10
>>264だけど、
Configure::write('Session.timeout', '31536000');
↑これってセッションファイルが破棄されるまでの時間じゃないのかよ!!!ややこしすぎ

290:nobodyさん
11/12/21 13:07:35.76
>>286
あくまで例を書いただけだが・・・


291:nobodyさん
11/12/21 14:24:31.11
>>288
紹介している人のブログ見たけど、いまいち何が捗るのか分からん
別に配列で指定しても見た目で分かるじゃん。

292:nobodyさん
11/12/21 14:41:31.77
そんなんだからぺちぱーなんだよ

293:nobodyさん
11/12/21 14:45:23.68
ぺちぱーってなんですか

294:nobodyさん
11/12/21 14:57:27.19
PHPer

295:nobodyさん
11/12/21 23:18:44.66
パーラー(Pearler)ほど洒落た言い回しではありませんね。

296:nobodyさん
11/12/21 23:35:54.39
APIにアクセスしたりするメソッドってどこに書けばいい?
複数のモデルとコントローラーから利用する予定だけど、クラスとしてLibに置いた方がいいのか
APIからデータを持ってくるところまでモデルとして扱っちゃった方がいいのかで迷っている。

URLリンク(www.multiburst.net)
この人はモデルに書いてるけど、外部のライブラリを使うわけで無ければモデルとして書いちゃった方がいいのかな。

297:nobodyさん
11/12/22 16:13:09.95
ログインの実装のデファクトスタンダード的な方法ってあるの?
ログイン維持しておくのはセッションで?クッキーで?
セッションなりクッキーにユーザーIDだけ保存する?ユーザー情報も保存しておく?

298:nobodyさん
11/12/22 16:20:05.12
ユーザー情報って具体的に何?

299:nobodyさん
11/12/22 17:12:31.58
セッションで。名前とか権限とかよく使いそうなデータもいっしょにセッションに入れておく。

300:nobodyさん
11/12/22 17:51:46.44
AuthComponentだと、usersテーブルの情報だけ持ち回してくれるんだっけ?
その都度SQL叩いてるんだったか、どっちだったか忘れた。

301:nobodyさん
11/12/22 18:58:21.21
ってかCakePHPってアプリケーションにアクセスするだけで
セッション発行してるけど、なんのために?
中規模のサイトだったらsessionファイルが何万も作られて怖いんだけど

302:nobodyさん
11/12/22 21:04:43.88
>>301
親切心での自動発行じゃ無いかな
いらないんならSession.startをfalseにしておこうぜ

303:nobodyさん
11/12/22 21:12:30.05
>>302
falseにしたら
$this->Session->setFlash
のメッセージが表示されなくなったニダ

304:nobodyさん
11/12/23 00:56:07.87
というか、2.0だとSession.startの設定出来なくなった?

305:nobodyさん
11/12/23 12:30:12.44
俺も2,0にしたいけど書き換える部分めっちゃあるだろうからめんどうだわ

306:nobodyさん
11/12/23 12:56:48.08
なんでCakeなんて使って作っちまったんだろうなあ
今更変えられないし

307:nobodyさん
11/12/23 13:04:59.22
>>306
変えられないのはお前のせい。

正しくフレームワークを使っていれば
自分の作ったコードとフレームワークを分離させられる。

308:nobodyさん
11/12/23 13:24:47.98
いやいやいやw

309:nobodyさん
11/12/23 13:33:57.13
時間と手間をかければできる

310:nobodyさん
11/12/23 14:26:04.13
1.3使ってる、それなりに大きなサイトあるだろ。
そのサイトで問題ないんだから、使い方が悪いだけだ

311:nobodyさん
11/12/23 16:12:44.23
ふと気づいたんだけど、1.2系でさえまだメンテナンス続いてるのね
最終版と銘打ったものが出ない限り、クリティカルなバグを含んでなければコアをアップデートする気になれない俺は無精すぎる

312:nobodyさん
11/12/23 16:19:01.72
動いてるシステムに手を入れたくない気持ちはよく分かる。

313:nobodyさん
11/12/23 16:46:26.74
そうそう
寝た子を起こすようなことになってしまったら嫌だし

314:nobodyさん
11/12/23 17:12:11.79
メジャーバージョンは動いているシステムだとアップデートするのはきついね。
マイナーバージョンは以前あったセキュリティコンポーネントのバグとかあるから注視しないといかんと思うけど。

315:nobodyさん
11/12/24 08:41:32.33
1.3.13を使っています。
ビューキャッシュって$autoLayoutがfalseの場合、
キャッシュファイルが生成されません。

レイアウトを使用しない場合、キャッシュが生成されないのでしょうか?

316:nobodyさん
11/12/24 15:39:27.27
>>315
その状況でのみキャッシュ生成されないんならそうなんじゃない?
layout/empty.ctpとか作ってコンテンツだけを単純に出力するレイアウトにして適用すれば回避できそうだけど

317:315
11/12/24 17:08:20.11
>>316
ありがとうございます。仮のレイアウト作る方法で出来ました。

ただビューキャッシュについては上手く行かないことが多くて、
例えば、core.phpに
Cache::config('default', array('engine' => 'File', 'prefix' => 'aaa_'));
としてもキャッシュファイルにprefixが付きません。
pathを指定しても、指定した箇所にファイルが生成されず、
普段通りapp/tmp/cache/viewsに作られるだけだし・・・

1.3.13をダウンロードして初期設定以外変えてないのですが
どうにもキャッシュ設定の変更が上手く行きません。
ググっても問題を見つけられないし・・・
分かる方いたらアドバイスお願いします。

318:nobodyさん
11/12/25 03:30:55.85 S4Adtqyt
CakePHP2.0でSessionの設定関連がcore.phpに見当たらないんですが、
セッションの有効期限を変更するのってどこをいじればいいんでしょうか?

319:318
11/12/25 03:57:41.58
自己解決。
一箇所に固まったのね。

320:nobodyさん
11/12/25 17:29:14.64
PaginatorHelperって使ってる?
自分で作るよりそんなに楽なの?

321:nobodyさん
11/12/25 21:18:29.33
>>320
標準であるから使ってる。既にあるものを再作成しちゃいけない。

322:nobodyさん
11/12/25 22:46:46.49
>>320
かなり楽

323:nobodyさん
11/12/26 00:40:12.74
SQL文のパラメーターを自分でエスケープする時ってmysql_real_escape_stringでいいんだよね?
conditions に array("MATCH(title) AGAINST ('".mysql_real_escape_string($keyword)."')");
みたいな感じに書くと「DBに接続できてないからmysql_real_escape_stringは使えないっすよ」的なエラーが出るんだけどどうしたらいいんだ

324:nobodyさん
11/12/26 08:51:40.09
>>323
cakeディレクトリ以下をmysql_real_escape_stringでgrepすることぐらい思いつかなかったの?

325:nobodyさん
11/12/26 08:53:39.81
>>323
cakeディレクトリ以下をmysql_real_escape_stringでgrepすることぐらい思いつかなかったの?

326:nobodyさん
11/12/26 19:22:58.29
>>323

App::import('Sanitize');
Sanitize::escape($keyword); とか

327:nobodyさん
11/12/27 02:42:47.86
>>321,322
でもDBの値を変更して出力する場合には
対応してないですよね?

328:nobodyさん
11/12/27 11:15:57.24
>>327
ページネイトでDBの値を変更するってどういう用途?

329:nobodyさん
11/12/27 13:24:45.98
webrootをpublic_htmlにして、それ以外のフォルダはドキュメントルートの外に起きたい場合はどのように設定するのでしょうか?

330:nobodyさん
11/12/27 13:29:34.03
↓のように見える件について報告はしたけど返信もこないんですけど
たいしたことないから修正されないんですかね?
実際に個人情報とか漏れてるわけでもないので別に問題ないっちゃ問題だいけど。
ちょうどフレームワーク名に使おうか迷っててcakephpにも興味あるんですが
cakephpてurlにクエリをつけるとこういうページが表示されるものなんでしょうか?

URLリンク(mystone.aeriagames.jp)

331:nobodyさん
11/12/27 14:05:11.21
うわー、urlに?を含めたこと無かったからびっくり。

332:nobodyさん
11/12/27 16:06:32.48
>>324-325
以前は入っていたような気がするんだけれども、2.xになってから使われてないっぽかったので、よくわからんので質問したんだ
説明不足ですまぬ

>>326
さんくす!

333:315
11/12/27 17:42:17.16
どなたか>>317についてはわかりませんか?
もう何日もググって試してやってますが、
ビューキャッシュファイルにprefixが付きません・・・

334:nobodyさん
11/12/27 19:36:48.08
>>329
webroot/index.phpでパスを指定する

335:nobodyさん
11/12/28 02:02:45.93
>>328
DBから一覧を取得してその中の日付のフォーマット変えたり、
0か1で入っている性別を男と女に変換したりとか。

336:nobodyさん
11/12/28 07:03:30.26
>>330
これは特殊例だな
多分トップページだけCakeのルーティングを外しているか特殊なmod_rewrite書いたりしてるはず
ソース読めないんで確かなことは言えないけど。
まあそもそも1.2の初期バージョン使ってるようなサイト参考にされても困る

337:nobodyさん
11/12/28 09:44:18.78
>>335
1.3ならvirtualField使った方が良いのでは。
日付のフォーマット変えるのは自分は表示する時にしてるけど。


338:nobodyさん
11/12/28 09:59:07.49
>>335
DBの値を変更って、SQLのINSERTとかUPDATEかと思った。
DBから引いたデータを加工するなら、viewでやろうがmodelでやろうが好きにすればいい。
そのあたりはpaginateでもfindと同じこと。争点にする意味がわからん。

339:nobodyさん
11/12/28 12:59:51.45
Cakeはデータがただの配列だから、
こういうときつらいよな

Yiiはオブジェクトなんだっけ?

340:nobodyさん
11/12/28 14:11:35.72
Cake使ってるWebサービスはあるけど、アプリはあるの?

341:nobodyさん
11/12/28 14:16:12.40
アプリってなんぞ

342:nobodyさん
11/12/28 14:43:40.02
意味不明ワロタ

343:nobodyさん
11/12/28 15:50:07.23
mixiアプリとかのことかな?

344:nobodyさん
11/12/28 16:36:45.22
すみません。webアプリのことです

345:nobodyさん
11/12/28 17:11:51.85
webサービスとwebアプリの違いは?

346:nobodyさん
11/12/28 17:18:26.85
wikipediaによると
・Webサービス(ウェブサービス)とは、HTTPなどのインターネット関連技術を応用して、SOAPと呼ばれるXML形式のプロトコルを用いメッセージの送受信を行う技術、またはそれを適用したサービス。
・ウェブアプリケーション(Web application)は、ウェブの機能や特徴を利用したアプリケーションソフトウェアのことである。
ウェブアプリケーションの一例としては、ウィキペディアなどで使われているウィキやブログ、電子掲示板、銀行のインターネットバンキング、証券会社のオンライントレード、電子商店街などネット販売のショッピングカートなどを挙げることができる。

347:nobodyさん
11/12/28 19:42:34.74
その定義通りだとして(違和感はあるが)、逆にWEBサービスとして使われてるのを見たことないな

348:nobodyさん
11/12/28 20:23:56.64
>>335
v2.0でもvirtualfieldだな
Paginatorのソートは、sqlに投げてるだけっぽいから、
加工後の値でソートしたいなら、virtualfield使うのが一番楽


349:nobodyさん
11/12/28 22:42:26.99
SOAPやRESTfulな環境で使うイメージがわかない。

350:nobodyさん
11/12/28 22:51:10.97
SOAP使ってないとWebサービスにならないのか
って、んなわけねーだろ!

351:nobodyさん
11/12/29 01:39:46.15
俺は↓な風に思ってたけど・・・
Webサービス→mixiとかtwitterとか
Webアプリケーション→OpenPNEとかWordpressとか

352:nobodyさん
11/12/29 03:10:25.40
Webサービス∈Webアプリケーション

353:nobodyさん
11/12/29 04:32:43.50
$this->User->save(array(
'id' => $user['User']['id'],
'lastlogin' => date("Y-m-d H:i:s", time()),
));
↑こうやってlastloginにユーザーのログイン時間を保存しているんですが、
ローカルではちゃんと保存されるのに、
全く同じコードをアップロードした本番サーバでは
保存されないのはなぜ??

354:nobodyさん
11/12/29 08:33:32.46
databaseの設定ミスとかじゃないよね?

355:nobodyさん
11/12/29 10:49:12.41
webrootをpublic_htmlに変更し、それ以外を全部ドキュメントルートの上に置くというのは難しいですか?

356:nobodyさん
11/12/29 10:58:31.41
MVCについてお聞きしたいのですが
学年
クラス
生徒
を管理するときに
コントローラ・・・学年
アクション・・・・クラス
id・・・・・・・・・・・生徒
とするのか
コントローラ・・・学年/クラス
アクション・・・・・生徒
とするのどちらがよいでしょうか?
前者の場合はモデルへデータを追加するだけで管理できますが
紺者の場合はモデルへデータの追加とアクションの追加を行いますが
どちらが定番といえますか?

357:nobodyさん
11/12/29 12:02:14.47
>>353
本番サーバとやらのログを貼らないのはなぜ??

358:nobodyさん
11/12/29 12:14:03.44
>>355
難しくありません。

359:353
11/12/29 12:45:18.65
>>357
ログとはどのログのことでしょうか?

360:nobodyさん
11/12/29 12:54:07.59
>>356
まともな日本語でおk
「管理」の用法が特殊で意味がわからない
あと、MVCについて誤解してないか?


361:nobodyさん
11/12/29 12:59:47.56
>>359
webサーバ、データベース、cakeあたりのログ

362:nobodyさん
11/12/29 13:01:26.83
>>360
分からない奴は黙っていたほうが良い
恥を書いて荒らしなる道に行くから

363:nobodyさん
11/12/29 13:33:28.56
わからないままは恥ずかしいので、
是非教えてください
荒らす気はありません

364:nobodyさん
11/12/29 14:44:26.04
>>356
その例なら学年とクラスは一緒じゃないか?
カテゴリ・サブカテゴリの関係性だろ?

365:nobodyさん
11/12/29 17:29:24.05
>>355
public_htmlの位置が変えられない環境ならこの辺参考にがんばれ
URLリンク(massat.jp)

>>356
その例だと、学年hasManyクラス、クラスhasMany生徒、のデーターベース構成の話になってしまうような
ちょっとMVCを誤解している気がする

366:nobodyさん
11/12/29 17:41:41.88
なかなか斬新なMVCの解釈だなw

367:nobodyさん
11/12/29 19:59:03.95
年末で暇なのか、賑わってるなー。よきかな

368:nobodyさん
11/12/29 20:06:56.58
>>356
学年、クラス、生徒は全部モデルだよ。
正確に言えば、モデルが扱うデータとその属性だよ。

ま普通に考えれば、生徒がたくさん入っている生徒達データがあって、
学年とクラスは、生徒一人ひとりの属性。

369:nobodyさん
11/12/29 20:09:49.58
コントローラはURLとモデルが持っているメソッドへの変換を行うものと考えればいい。
そして、メソッドの戻りをビューに変換する役目も持っている。

コントローラはあくまでURLとデータの変換をするだけで
学年とかクラスとかそんなものを扱う所ではない。

370:nobodyさん
11/12/30 03:20:30.57
>>356は俺たちの煽り耐性を試してるんだと思う。

371:nobodyさん
11/12/30 11:04:12.85
MVCを勘違いしていることはよく分かる。

372:nobodyさん
11/12/30 12:04:16.43
MVCを理解していない人は非常に多いが、こういう勘違いをする人はレア

373:nobodyさん
11/12/30 12:56:24.02
cookbookさえ読めば解決だと思う

374:nobodyさん
11/12/30 13:57:03.73
MVCでラーメンは作れますか?

375:nobodyさん
11/12/30 14:07:23.64
cookpadさえ読めば解決だと思う

376:nobodyさん
11/12/30 14:08:22.55
MVCはなくても電気は足りるよ

377:nobodyさん
11/12/30 15:17:13.68
MVC 2014年10月から引き上げ決定

378:nobodyさん
11/12/30 15:37:15.23
MVCが異音出してて壊れそうなので買いに行きたいんだけど、そろそろ値段は落ち着いてるのかな

379:nobodyさん
11/12/30 23:17:06.65
おれが、おれたちがMVCだ!

380:nobodyさん
11/12/31 04:56:39.85
MVCとは違うのだよ、MVCとは!

381:nobodyさん
11/12/31 07:32:25.22
MVCであることを強いられているんだ!

382:nobodyさん
11/12/31 07:56:47.38
早くMVCになりたい!

383:nobodyさん
11/12/31 07:57:13.90
MVC48がレコード大賞だってよ

384:nobodyさん
11/12/31 08:39:39.24
さあ、ケーキ作りに戻ろうか。

385:nobodyさん
11/12/31 19:39:46.96
結局>>362が一番アホだったなw


386:nobodyさん
12/01/02 13:43:43.74
2

387:nobodyさん
12/01/02 16:43:04.06
新年だし1.3系のシステムを2.0系に作り直してみるぜ

388:nobodyさん
12/01/02 17:00:58.05
それは貴方にいかなる利益をもたらすのか?

389:nobodyさん
12/01/02 17:34:39.76
勉強にはなる。

390:nobodyさん
12/01/02 17:59:16.89
「使わない機能を切る」みたいな機能があればいいのにな。
なんでもかんでも読み込むから重くなるんだと思う。


391:nobodyさん
12/01/02 18:45:39.31
>>388
他にも2.0で新規に作ったシステムがあって、それと同時に開発してるから、バージョンが違うとややこしい
あとコードが汚いからイチから書き直したいというのもある
いずれにせよ、古くなったバージョンからはさっさと離れたい

392:nobodyさん
12/01/02 18:47:28.84
2.0って?p=1みたいな感じでもキャッシュは効くのかな

393:nobodyさん
12/01/02 20:59:19.72
1から作りたいなら、いっそのことCake風オレオレフレームワークを作れよw
俺はそんな感じの作ってるよ。


394:nobodyさん
12/01/02 21:23:42.17
cakeやるんだったらbakeって覚えとかなきゃマズい?すげぇかったるそうなんだけど。

395:nobodyさん
12/01/02 22:01:40.40
楽できなくてもいいなら問題ない

396:nobodyさん
12/01/02 22:15:37.39
>>395
まぁ使う方が楽なんだろうけど、やんないならやんないで別にいいって部類ならスルーしちまおうかと思って。

397:nobodyさん
12/01/02 22:19:15.79
てか、bakeやらなくても1回作った物をコピーすれば良いだけじゃん。
同じような箇所が結構あるだろ

398:nobodyさん
12/01/02 23:08:17.97
>>394
cakeに用意されているサンプルデータでいいから、1回はbake体験した方がいい。
ひな形とはいえ、MVC全部を作ってくれるのは助かる。

399:nobodyさん
12/01/03 00:17:03.05
bakeやった方が良さそうという事がわかった。サンクス。

400:nobodyさん
12/01/03 03:59:04.88
フォームヘルパーをカスタマイズしたいときって多いと思うんだけど、どうやってる?
1.helpers/form.phpをapp以下にコピーして改造
2.FormHelperを継承したMyFormHelperを作成
1→Cakeのバージョンアップ時に問題
2→ビューでの変数名がFormじゃなくなるのが嫌

401:nobodyさん
12/01/03 08:57:05.67
>>400
半角スペースは投稿時に省略される。

>.2.FormHelperを継承したMyFormHelperを作成
今回はこっちを採用した。html5の input email を使いたくて、FormHelperを継承した。

402:nobodyさん
12/01/03 13:58:48.66
JavaScript系のヘルパー使うのって普通にjQueryのコード埋め込むのと比べてメリットありますか?

403:nobodyさん
12/01/03 15:17:25.79
PHPファイルで使える

404:nobodyさん
12/01/04 00:34:45.46
結局MyFormHelperをビューで$this->Formという変数名で使うことはできないの?

405:nobodyさん
12/01/04 00:43:36.30
>>404
namespaceでも使えば出来るんじゃないの?

406:nobodyさん
12/01/04 09:38:54.30

>>404
URLリンク(github.com)

407:nobodyさん
12/01/04 20:46:12.62
誰かAppModelをオーバーライドして
複合主キーにも対応させてくれないか?

408:nobodyさん
12/01/04 22:17:55.77
断る

409:nobodyさん
12/01/04 23:27:58.25
みんなfunctionの頭にpublicってつけてる?
2.0のブログチュートリアルを見るとつけてたりつけてなかったりだけど、
何も書かなければデフォでpublicだから省略していい気がするんだけど、
書いた方が(見栄え的に)お行儀のいいコードだったりする?
URLリンク(book.cakephp.org)

410:nobodyさん
12/01/05 00:24:31.76
>>409
一応CakepPHPのコーディング規則ではそこまで書いてないので、好きにすればOKかと。
ただし、メソッド名の方に規則があって、protectedの場合はメソッド名の先頭をアンダーバー、
privateの場合はメソッド名の先頭をアンダーバー2つ。

URLリンク(book.cakephp.org)

411:nobodyさん
12/01/05 01:57:28.20
変数は必ずpublic/privateつけて、メソッドはpublicなら省略するのが俺ルール。
つけたほうが一貫性があっていいとは思うんだけど、
public function 関数名
と書くと、public functionが長すぎて、ぱっと見たとき関数名に目が
行きにくいんだよな。変数は常にpublic/private意識しておくけど、
メソッドはほぼpublicで問題ないし。

412:nobodyさん
12/01/05 02:06:02.96
>>410 >>411
サンクス
見た目すっきりさせたいしpublicは無しで統一するわ

413:nobodyさん
12/01/05 02:32:44.05
public付けないと気持ち悪くね?
1.3時代からpublic付けてたんだが。

414:nobodyさん
12/01/05 12:39:38.01 6HbHp9Xn
CakePHPを勉強し、自前のウェブサイトを構築したおかげで、ウェブサービスの企画があっという間できるようになった。
頭の中に、ウェブサービス構築のための常套手段が植え付けられたからだと思う。
CakePHPというよりもフレームワークを使用するメリットと言った方が適切かな。


415:nobodyさん
12/01/05 17:48:11.25
2.0になって、404吐かせるのがcakeErrorからthrow new NotFoundException()に変わったせいか、
AppControllerのbeforeFilterでsetした値が404の時にビューに反映されないようになった?
全ページでヘッダー部分に表示させてる共通データの部分が、404の時だけundefined variableになってしまう
SQLログ見るとデータ自体は取ってきてるみたいだけどsetしたはずのデータがビューに反映されない

416:nobodyさん
12/01/05 17:52:46.12
>>413
コア見るとpublicつけてるみたいね
コアと共通表記にしたいのならpublicつけるべきだと思う

417:nobodyさん
12/01/05 21:37:19.55
>>415
ビューがClassRegistyに登録されなくなったから、ビューの別インスンタンスが生成されて
それが使われる。
あとデフォルトのExceptionRenderer(というか、CakeErrorController)はbeforeFilter()まで実行しない。
beforeFilterで例外飛ばすときもあるじゃん?
というわけでExceptionRendererを継承したクラスを作ってそれを使うのがお勧め。
_getController()でもオーバーライドすればいいじゃないの。

418:nobodyさん
12/01/05 22:25:09.07
>>417
ありがとう
なんか取り回しが悪くなった気がして仕方ないがw

419:nobodyさん
12/01/06 01:07:10.01 yz+Wi1W6
Model::find('all')のfieldsにサブクエリを使いたいんだけど
どうすればいいですか?

420:nobodyさん
12/01/06 06:11:17.85
セッションファイルってどれだけ溜めてもいいもん?
云万になるとlsが遅くなる気がするけど、
PHPがセッションファイルを直接取ってくるんならとくに大丈夫なのかな

421:nobodyさん
12/01/06 07:36:47.81
>>420
全列挙する必要がある ls には O(N) 必要
それに対して目的のファイルが判っている場合は O(log N) に収まる
古いファイルシステムだとまた話が変わってくるが

422:nobodyさん
12/01/06 07:42:05.08
>>421
100万あっても無視できる程度になりそうですね

423:nobodyさん
12/01/06 09:12:24.69
ファイルってインデックス化されるん?
そらされるか…

424:nobodyさん
12/01/06 10:03:42.70
インデントはスペース派なんだけど、
Cakeはタブだよね?

スペース派の人どうしてる?
Cakeに合わせてる?

425:nobodyさん
12/01/06 11:54:55.28
プロジェクトや会社によってはPEAR規約(っぽいもの)で開発してたりするよ

426:nobodyさん
12/01/06 14:42:53.01
cakephp2.0を置いてHelloコントローラとindexアクションとhelloビューを作って
URLリンク(localhost)にアクセスするとhelloビューの内容が読み込まれましたが
URLリンク(localhost)にアクセスするとcakephpのreadme見たいな感じのページがでてしまいます
URLリンク(localhost)にアクセスした場合のデフォルトのコントローラをhelloにしたいのですがこれはどこのファイルに設定するのでしょうか?

427:nobodyさん
12/01/06 15:56:30.42
routes.php

428:nobodyさん
12/01/06 23:03:59.16
>>424
自分で書いたコードはスペースインデント
routes.phpとか既に用意されているファイルはタブインデント
一人プロジェクトだから細かいことは(゚ε゚)キニシナイ!!

429:nobodyさん
12/01/07 08:27:20.92
携帯からアクセスがあったときは、
app_controller の before_filter で

header('Content-Type: application/xhtml+xml; charset=Shift_JIS');
という風にHTTPヘッダの content-type と charset を設定して、本来

Content-Type: application/xhtml+xml; charset=Shift_JIS
このヘッダが送られるはずが、

Configure::write('debug', N);
この設定を、0(デバッグ無し)に変更すると、

Content-Type: text/html
と、出力されてしまう。
(3 にするとちゃんとxml用のヘッダが送られるのは確認済み)

このケースが逆なら、手動でヘッダを送る前にデバッグ情報が送られているのかなと思うのですが、
デバッグ無しにすると、別のヘッダが送られているのが不思議です・・・。

どのファイルのどこでHTTPヘッダが送られているかって確認できましたっけ?

430:429
12/01/07 08:33:08.99
大事なことを言い忘れていました。
>>429の現象はさくらの本番サーバにアップしたときにのみ起こります。
開発環境のlocalhostではdebugの値に関係なく、
意図したHTTPヘッダが送られています。

アドバイスいただければ幸いです

431:nobodyさん
12/01/07 12:27:32.35
一部のアクションでしか使わないコンポーネントを全部ロードするのは無駄ですが
アクションに応じて、ロードするコンポーネントを変更することはできないのでしょうか?


432:nobodyさん
12/01/07 13:24:04.51
>>431
App::importは?

URLリンク(book.cakephp.org)

433:nobodyさん
12/01/07 13:52:12.56
>>432
リンク先は違う情報だったけど要は
App::import('Component', 'Mailer');
$Mailer = new MailerComponent();
$Mailer->initialize( $this );
$Mailer->startup( $this );
ってやればいいのかな?


434:ひろみちゃん
12/01/07 17:28:25.09
>>431
2.0からコアの機能で動的に読めますが、1,x系は拙作のHackプラグインを使うことによって
期待する機能が提供されます。
URLリンク(github.com)
Alias->loadComponent('Mailer');
startupするかは第3引数にtrueを指定すればOKです。
ドキュメントが整備されてないのですが需要があればします。
あとプラグイン名が厨二病臭いですが厨二病なので諦めてください。

435:nobodyさん
12/01/07 17:52:24.37
>>434
ありがとうございます
拝見しましたが、思ったより長いですね
>>433のやり方じゃ駄目で、このようにきっちりやるべきなんでしょうか

436:ひろみちゃん
12/01/07 18:00:20.89
>>435
短期的には>>433のやり方でも問題ないです。
メールのマネージャー程度のコンポーネントならまず大きな問題は起こりえないでしょう。
長期的に見れば、2.0で導入されるやり方に近いほうがより良いと思います。

437:nobodyさん
12/01/07 18:15:00.53
わかりました、ありがとうございます
コードはありがたくいただきます

438:nobodyさん
12/01/07 21:17:09.01
2.0でこのAdminAuthComponentがちゃんと動いている人いる?
URLリンク(www.1x1.jp)

開発環境では問題なかったんだけれども、レンタルサーバーに上げてみたら
> header("WWW-Authenticate: Basic realm=\"Please Enter Your Password\"");
のところが効いてないのか、Basic認証のダイヤログが出ずにAuthorization Requiredと表示されてしまう。

HTTPヘッダーを見てみたところ、開発環境(正しく動いている環境)では
>HTTP/1.1 401 Authorization Required
となっているのが、本番(正しく動かない環境)では
>HTTP/1.1 200 OK
が出てしまっている。

ちょっと>>429の状況に近いかも知れないけど、自分の方はdebugの値に関係なくheaderがちゃんと送信されてない感じ

439:438
12/01/07 21:49:27.70
すまん、自己解決
CGI版のPHPだとBasic認証効かないのね

440:nobodyさん
12/01/07 22:13:13.36
2になってからちょっと軽くなった?
1.xと比べてシャキシャキ動いてる気がする

441:nobodyさん
12/01/07 22:51:46.73
2.0.5ぐらいになってるけど、バグは減った?

442:nobodyさん
12/01/07 23:02:34.52
なに、動きが軽くなるなら乗り換えたいが

443:nobodyさん
12/01/08 01:17:09.40
何となく軽いと言うだけでベンチを取ったわけじゃないので話半分に聞いてくれ

444:nobodyさん
12/01/08 03:29:35.66
そうか、ベンチ取った人とかいないのかな

445:nobodyさん
12/01/08 14:39:21.96
URLリンク(doophp.com)
dev版だけど、多少軽くなってるみたいだな

446:nobodyさん
12/01/09 00:29:39.74 pfm1AGOc
controllerでfindするときのorderを
'order' => array('Person.secondname ASC')
のようにしているんですが、複数のorder条件をつけるのはどうしたらいいですか?

具体的には苗字順に並べるようにしてるんですが、苗字がない人は下の名前(Person.firstname)を参照して五十音で並べたいです

447:nobodyさん
12/01/09 00:37:51.69
自己解決しました
$options['order'] = array(
'Person.secondname, Person.firstname ASC'
);
で$optionsをうしろにくっつければいけました

448:nobodyさん
12/01/09 00:53:14.64
>>446です>>447では解決してませんでした。。

449:nobodyさん
12/01/09 01:58:03.73
orderがarrayになってるんだから分かるだろ?

450:nobodyさん
12/01/09 06:19:15.24
コントローラーで
function index($param){
とアクションを作っていて、URLで
コントローラー名/index/パラメータ
と呼ばすに
コントローラー名/パラメータ
とやっても動くようにするにはどうすればよいでしょうか
ぐぐるとRoutesを使う例が出てきましたが、それだと他のアクションが使えなくなるようでした
アクションとして存在しない時のみ、indexのパラメータとして扱うことはできないでしょうか

451:nobodyさん
12/01/09 08:57:47.96
>>450
$paramが数値なら、ルーティング規則でその部分に(数値であることの)正規表現を書けば
いける。詳しくはぐぐって。
だめだったらカスタムルートオブジェクトを作成してひーこらするしかない。頑張って。

452:nobodyさん
12/01/09 08:58:56.35
その部分にってのは紛らわしいなごめん
Router::connect()の第3引数で指定するってこと。

453:nobodyさん
12/01/09 09:04:31.25
調べ中ですがまだうまくいっていません
ちなみに$paramは文字列で、複数ある場合もありますが大丈夫でしょうか

454:nobodyさん
12/01/09 09:46:49.44
数値ならってわざわざ書いたのはなんでだと思う?

455:nobodyさん
12/01/09 23:29:06.48
cakephpのサイトだけ紹介してるサイトないかな

456:nobodyさん
12/01/09 23:34:27.49 SU3KFcHv
2になって、AuthComponentがかなり洗練されたね

457:nobodyさん
12/01/09 23:37:13.69
CakePHPでページを表示すると下の方にsqlを200件だしているような表示になります
これは実際に200件実行してるということでしょうか
すると問題ありますかね

458:nobodyさん
12/01/09 23:43:44.32
件数取得してるだけじゃないのか?
sqlを200回実行してるわけねーだろ


459:nobodyさん
12/01/09 23:49:11.21
>>458
ありがとうございます。
(default) 262 queries took 46 ms こう表示されてました。

460:nobodyさん
12/01/09 23:55:34.73
>>459
262回クエリ投げてるな
どんなページだか知らないがさすがに多すぎると思う
っていうか、自分で実装したコードなんだろうからクエリ回数くらい検討つくだろう
アソシエーションで勝手にいっぱい持ってきているのならcontainableで引っ張ってくるデータを厳選すればいいぞ

461:nobodyさん
12/01/09 23:58:51.05
>>460
ありがとうございます。
containable調べてみます


462:nobodyさん
12/01/10 01:48:35.15
containつかったら88 queriesまで減らせませした


463:nobodyさん
12/01/10 03:05:48.92 Rzgwr3Tg
CakePHP2.1alpha を早速いれて試してみたが、エラーメッセージ(スタックトレース)がかなり見やすくなってる

464:nobodyさん
12/01/10 05:46:55.61
Cakeって気付くとめちゃめちゃクエリ投げてるよね
遅い原因の一つはこれか?

465:nobodyさん
12/01/10 10:19:59.29
今頃気づいたのか
Yiiにしとけ
CakePHPはオワコン

466:nobodyさん
12/01/10 12:07:44.08 +4VQFJJn
v1.2の話なんだけど
aテーブル
bテーブル
a_bテーブル
があるとして
a にhasAndBelongsToManyを設定して
a_b にbelongsToを設定したら、このbelongsToがスルーされる。なぜだかわかる?
削除用に設定したいんだけど、毎回bindModelするしかないのかな。


467:nobodyさん
12/01/10 12:11:35.74
Yiiってほとんどのレンタルサーバーで使えないじゃんw

468:nobodyさん
12/01/10 13:05:20.54
PDO使うからか?

469:nobodyさん
12/01/10 13:14:52.36
Yiiっていいの?

470:nobodyさん
12/01/10 13:32:02.30
>>466
recursive設定するのはどうかな

471:nobodyさん
12/01/10 19:50:56.57
最近2.0使ってるんだけど、本番環境時に/foos/barとか適当なURLにアクセスすると
表向きは404返してくれるんだけど、error.logにmissing controllerが記録されるようになった気がする
テスト環境時はmissing controllerエラーを表示してくれてOKだけど、本番でそれがerror.logに記録されるのはなんか変じゃないか?
/robots.txtとか/favicon.icoとかにアクセスがあったら、ひたすらerror.logに記録されちゃってるし(ファイルがない場合)

472:nobodyさん
12/01/10 21:31:38.90
それ、php.iniの設定では?

473:471
12/01/10 22:52:12.56
>>471
説明不足ですまぬ
/app/tmp/error.logに記録されまくって困っている

474:nobodyさん
12/01/11 09:07:32.93
>>471
.htaccessでなんでもかんでもCakePHPに渡すようになってる事が問題

475:nobodyさん
12/01/11 16:35:42.80
設定でExceptionHandlerがログを取るかどうかが指定できたような気がする
今再インストール中で確認できないが

476:471
12/01/11 19:36:53.02
>>474
1.3の頃はそんなことなかったんだけどなあ

>>475
サンクス
ちょいと調べてみる

477:nobodyさん
12/01/12 06:51:34.68
2.0ではController::cakeError()の代わりにどうやってエラー画面出すの?

478:nobodyさん
12/01/12 13:41:50.62
>>477
URLリンク(c-brains.jp)

479:nobodyさん
12/01/12 20:06:56.05 srRhUW1K
>>470
返信サンクス
解決方法探し当てた。
URLリンク(d.hatena.ne.jp)

480:nobodyさん
12/01/13 01:39:04.98 ayVGOPQu
通常セッションの有効期限はcore.phpで設定すると思いますが、
コントローラーの中で動的に変更したい場合どうすればいいですか?

481:nobodyさん
12/01/13 17:22:59.89
Cakeで作られたサイトのフォーム見ると、

<input name="data[Post][title]"
じゃなくて
<input name="title"

になっている場合があるのですが、
これって単にフォームヘルパーを使ってないだけですかね?
それともフォームヘルパーでnameを配列にしない方法があるのでしょうか?

482:nobodyさん
12/01/13 18:28:21.82
Cakeのヘルパーは使えないことで有名だからな


483:nobodyさん
12/01/14 21:18:17.06
関数で帰ってきた配列を代入せずに、
そのまま添字付けることって可能?

test()['test']

みたいな

484:nobodyさん
12/01/14 21:28:07.86
やってみりゃいいじゃん

485:nobodyさん
12/01/14 21:47:35.89
できなかったから他の方法ないかなぁと思って
内部的に戻ってきた配列に添字つけて参照するだけだし、
難しそうではないんだけどなぁ

486:nobodyさん
12/01/14 21:55:23.06
あーよく俺もそれできたらいいなと思う
つーかCake関係ないやんそれ

487:nobodyさん
12/01/15 00:09:42.08
function getValueFromFunc($func,$key) {
$a = $func();
return $a[$key];
}

488:nobodyさん
12/01/15 15:39:15.61
URLリンク(blog.s21g.com)
こんな感じでURLを丸ごとパラメータとして渡したいんですが
Cakeでやる方法があったら教えてほしいです

489:nobodyさん
12/01/15 16:40:34.32
cakeってパラメータにメタ文字使えないんじゃ

490:nobodyさん
12/01/16 17:55:18.55 l7Fd5fgU
.NET interoperability overview of Phalanger 3.0
URLリンク(www.php-compiler.net)

491:nobodyさん
12/01/16 19:49:38.62
>>485
PHPの公式コミュニティ行って頼んでこいよハゲ

492:nobodyさん
12/01/17 00:47:37.68
1.3.10使ってるんだけど、cccが3のレコードのaaaとbbbを更新したくて

$this->updateAll(array('aaa' => 1, 'bbb' => 2), array('ccc' => 3));

だと失敗して

$data = $this->find('first', array('conditions' => array('ccc' => 3), 'field' => array('id')));
$data['ModelName']['aaa'] = 1;
$data['ModelName']['bbb'] = 2;
$this->save($data);

だと成功する。今まで2年ぐらいCake使っててこういうの初めてで、何故だかわからないんだけど
わかる人いる?

493:nobodyさん
12/01/17 01:07:49.33
>>492
1個目の例で失敗しそうにないけど、何て出て失敗するの?

494:nobodyさん
12/01/17 01:37:40.29
事故解決。これでした
URLリンク(stackoverflow.com)

495:nobodyさん
12/01/17 02:50:02.37
Cake2.0を使ってます。モデル内でコンポーネントを使っていて
PHPUnitでそのモデルをテストすると
Fatal error: Class 'Component' not found in /path/to/Controller/Component/HogeComponent.php on line xx
と怒られる。

ちなみにモデル内でのコンポーネントの呼出はこんな感じ。
App::uses('HogeComponent', 'Controller/Component');
$hoge = new HogeComponent(new ComponentCollection());

Call Stackの最後にはinclude( '/path/to/Controller/Component/HogeComponent.php' )とあるんだけど
これはコンポーネントのインクルードでなにか問題があったということかな?

コンポーネントが見つかりませんというエラーメッセージについて分かる人いたら教えてください。


496:nobodyさん
12/01/17 02:58:24.75 7jQnUKTc
斜め読みだけど、その HugeComponent の冒頭に
App::uses('Component', 'Controller');
と付け加えればよいのでは?

497:nobodyさん
12/01/17 04:10:42.74
それならテストコードにつけるべきだな。
モデルでコンポーネント使う設計についてはもはや何も言うまい

498:nobodyさん
12/01/17 08:53:23.17
>>496
斜め読みすげえ!
エラーが消えてテストできるようになったよ。サンクス!

499:nobodyさん
12/01/17 11:04:16.23 7jQnUKTc
>>498
CakePHPは、2になってクラス階層を意識する場面が多くなったと思う。
2.1ではさらにその傾向が強くなっている。
2で開発しているのだったら、今のうちに2.1にアップグレードしておくのをおすすめする。

500:nobodyさん
12/01/17 15:19:00.74
2.1ってそんなに変わるのか?
リリースによれば2.0と完全後方互換があるらしいけど

501:nobodyさん
12/01/17 16:07:54.57
1.3で開発してるけど、後々問題になりますか?

502:nobodyさん
12/01/17 17:59:13.26
>>501
1.3→2系の移行は結構な手間になるから
新しく作るなら2にしといた方がいいんじゃないすかね。

503:nobodyさん
12/01/17 20:03:02.72
フレームワークのほうが面倒になるとか本末転倒だな

504:nobodyさん
12/01/17 20:24:27.94
Phalanger 3.0 (2012年1月) をリリースしました。
スレリンク(poverty板)


505:nobodyさん
12/01/17 20:36:02.54
>>501
ディレクトリ階層がかなり変わったので、別物と考えた方がいい。

506:nobodyさん
12/01/17 21:29:13.39
みんなはもう2系で開発してるの?情報少なくないか?

507:nobodyさん
12/01/17 23:25:43.99
ゼロから始める人には入門情報が少なくて厳しい状況かも知れないね
でも1.x系の開発経験あれば、マイグレーションガイドを見つつ書いていけば何とかなる
何とかならなかったときにはこのスレがある

508:nobodyさん
12/01/18 11:54:09.09 1MLy4CWB
v2のメリットは、実行速度の向上につきると思う。
問題は、既存の資産が直接使えなくなったこと。
特にAuthまわりは、完全に変わってしまっている。
これまで、直接 Auth コンポーネントをオーバーライドして機能拡張していたんだけど、すべて書き直して、プラグイン化した。
*機能拡張の内容は、「ユーザ登録確認メールの送信」「オートログイン」「SSL対応」「権限チェック」。
しんどかったけど、今後のプロジェクト間での使い回しと拡張性が確保できた点では、それなりのメリットが見込めそう。
メール送信も大きく変更された部分だが、これはすばらしい出来。

509:nobodyさん
12/01/18 14:59:56.52
Authが異なるのは辛いな・・。
メール送信や画像アップロードはライブラリ作ってるけど、
Authはフレームワーク全体に関わることだからな

510:nobodyさん
12/01/22 17:25:08.97 MxKFDdQF
1.3系での話しですが、日本語メールを送る場合
EmailComponent::templateで指定したファイルの文字コードは
UTF-8もしくはShift-JIS、どちらが正しいのでしょうか?

511:nobodyさん
12/01/22 22:16:15.47
文字コードで迷ったらutf-8がいいですよ。
あとあと楽です。

512:nobodyさん
12/01/23 00:38:44.40
全角含まないで保存すると元に戻るのが煩わしい

513:nobodyさん
12/01/23 06:06:15.69
function add() {} // 保存アクション
function edit() {} // 編集アクション
↑8割方同じ処理をしているアクションがあるときどうしてる?
俺はaddに同一処理かいて、
エラーや編集のときの個別処理だけeditに書いてるんだけど、
アクションのURLが違うからエラーでの書き込みフォームに戻る処理などが難しい
editでreturn;するとeditビューが呼ばれてしまう

514:nobodyさん
12/01/23 11:36:23.68 Vo1w/brb
echo $form->select('Order.prefectures', array(
'北海道' => '北海道',
'青森県' => '青森県',
'岩手県' => '岩手県',
'宮城県' => '宮城県',
'秋田県' => '秋田県',
'山形県' => '山形県',
'福島県' => '福島県',
'茨城県' => '茨城県',
(中略)
'鹿児島県' => '鹿児島県',
'沖縄県' => '沖縄県'
), 1, array('empty' => null, 'class' => 'orderform')) . PHP_EOL;
と書いたんですが、出力をみると一つ目の北海道にselectedがついてなくて、

<option value="福島県">福島県</option>
option value="茨城県">茨城県</option>

と茨城県だけ頭の<が出ないです
茨城の項目を削除すると、次の栃木の頭の<が消えるので福島が原因かと思ったんですが
福島を消しても栃木が消えるので8個目が消えるという感じかも知れないんですが
解消する方法ご存知でしたらお教えくださいますようよろしくお願いいたします



515:nobodyさん
12/01/23 12:43:46.65
日本語文字コードじゃね?

516:nobodyさん
12/01/23 15:21:45.11
>>515
ありがとうございました
google chrome の問題だったみたいです

517:nobodyさん
12/01/23 16:49:13.48
>>513
俺はaddとeditは一緒にaddの中に書いて、idがあるかどうかで条件分岐してるわ
アクション分けたいならfunction _addOrEdit()みたいなのをつくって、共通処理はそこに突っ込めば?

518:nobodyさん
12/01/24 16:24:41.34
cake2.0でdatetimeのフォームから送信した年月日が,配列のままDBに格納されようとしてエラーが出ます。
deconstructが効いていない理由がわかりません…助けて。

view:
echo $this->Form->label('birthday', '生年月日');
$minY = date('Y')-100;
$maxY = date('Y')-18;
echo $this->Form->datetime('birthday', 'YMD', null, array('monthNames' => false, 'minYear' => $minY, 'maxYear' => $maxY, 'separator' => array('年', '月', '日')));

コントローラ:
if(!$this->Hoge->save($this->request->data)) {
$this->Session->setFlash('データの登録に失敗しました。');
}

Formヘルパー(separatorの配列対応):
//$opt = implode($separator, $selects);
$opt = "";
$i = 0;
if (is_array($separator)) {
foreach($selects as $select) {
$opt .= $select.$separator[$i];
$i++;
}
} else {
$opt = implode($separator, $selects);
}

519:nobodyさん
12/01/24 22:58:24.14
>>518

手元で検証してみたら、確かにModel::deconstruct()が仕事しなかった。
んで、最新版落っことしてきて、コアの部分をすげ替えたら動いたよ。
cake2最初期版はなんか問題があったんかもしれんね。

ついでにもうひとつ。
FormHelper::dateTime()だけど、引数の取り方変わってるよ。
その書き方でほんとにプルダウン生成されてるかい?

URLリンク(book.cakephp.org)

520:519
12/01/24 23:16:35.15
連投すまんぬ。もうひとつ捕捉。
DBにdate型とかでbirthdayフィールドが存在しなければ
Model::deconstruct()はきっと何もしてくれない。
Model::deconstruct()のメソッド内にある
$type = $this->getColumnType($field);
で有効な値が取れて初めて機能する模様。

なんともはや。。。


521:nobodyさん
12/01/25 16:31:52.13
2.1でAppControllerとかのファイルが無くなっているんだけど、
これは今後のバージョンで無くすということ?使うなということ?

522:521
12/01/25 16:40:31.53
すまん、libの中から消えただけで、appの下に標準で含まれるようになったのか。


523:nobodyさん
12/01/26 22:25:16.80
2月中に2.1正式版出るかなー
今2.0でリリースすると中途半端な気がして、2.1のリリースを待機している・・・

524:nobodyさん
12/01/27 13:11:04.23
Cakeからの移行先って何か考えてますか?
そろそろPHP5.3仕様のフレームワークに移りたい・・・
あと、データが配列なのももう嫌。

今のところ、正式版でてるのはSymfony2かFuelPHPかな?
Yiiも次期バージョンでは5.3を使うらしい。

525:nobodyさん
12/01/27 13:56:20.77
なんで配列は嫌なの?

526:nobodyさん
12/01/27 14:58:32.50
配列嫌ならRoR行こうぜ

527:nobodyさん
12/01/27 15:19:00.44
>>525
たとえば、ビューがifだらけになっちゃうことなどです。
バーチャルフィールドである程度は対処できますが、
限界がありますし・・・

528:nobodyさん
12/01/27 19:36:57.17
PHPUnit3.6インストールしたら、debug()とか出力されなくて
マニュアルを確認すると
「TipAll output is swallowed when using PHPUnit 3.6+. Add the --debug modifier if using the CLI or add &debug=1 to the url if using the web runner to display output.」
test.phpで走らせてるので、URLに&debug=1をつけたのですが
何も出力されません。わかる人いたら教えてください。

環境
CakePHP 2.0.5
PHPUnit 3.6.9

529:nobodyさん
12/01/27 20:38:59.59
>>527
そんなこと無いけど。
どういう場面でviewがifだらけになるのか、想像つかん

530:nobodyさん
12/01/27 21:51:47.71
1.3.14ですが、webrootの中にフォルダを作り、
同名のコントローラにアクセスすると、そのフォルダを読みに行ってしまいます。


/webroot
└/test
└index.php

の場合、URLリンク(example.com)
でアクセスすると、/webroot/test/フォルダ内のindexファイルを探す

同名のフォルダがあった場合、コントローラーを読み出すようにするには
どうすればいいのでしょうか?

531:nobodyさん
12/01/27 22:30:54.56
>>524
配列が嫌って、PHP全否定じゃないですかw

532:nobodyさん
12/01/27 23:47:52.29
>>530
仕様
別名にするか.htaccessを書き換えるしかない

533:nobodyさん
12/01/28 16:14:55.65
sqliteってすごく便利だったのね

534:nobodyさん
12/01/29 02:29:16.25
ページネーションのソートの際に、対象フィールドのリンクには
<a class="desc" のようなclass名が付くと思うのですが、
1.3.14では付きません。なにか設定方法が変わったのでしょうか?

535:nobodyさん
12/01/29 20:34:45.68
1 -> 2 -> 3
と遷移する画面があるとして、1でPOSTされたdataをそのまま3で使いたい時
どうすればいいかね?
2でinput hiddenで埋め込むしかないの?

536:nobodyさん
12/01/30 01:35:56.87
>>535
これどうだい?
URLリンク(github.com)

537:nobodyさん
12/01/31 20:54:05.78
なんで2.0になってから404 Not Foundもapp/tmp/error.logに記録されるようになったん?
ボットの適当なアクセスでerror.logが更新されまくって困るんだが

538:nobodyさん
12/01/31 21:27:48.91
>>523
今、2.0系で開発してるんだが、2.1系とどれくらい互換性あるのかね
2.1まで待てばよかったかなぁ・・・

539:nobodyさん
12/02/01 14:03:22.66
find("all")で全レコードをviewで一覧出力したあとで,
リンクをクリックすると絞り込み検索して,結果を一覧表示させる方法がわからないです。

全レコードの出力はindexアクションなんだけど,
絞込検索の方は,また別にアクションを書く必要があるの?
それともindexアクションの中で絞り込むことってできるの?

540:nobodyさん
12/02/01 14:31:02.84
最初の一覧表示を「全部が含まれる絞り込み」と考えればコードは一つ。

541:nobodyさん
12/02/01 18:11:27.88
>>538
2.1は2.0完全互換なので問題なく動くはず
ただ2.1でも重要な部分のアップデートがあるから、その辺はどちらにせよそのうち直すことになりそうだけど

542:sage
12/02/03 01:46:58.38
Roadmaを読むと3.0でネームスペースの導入とオブジェクトを返す仕様にするとあるな。

543:sage
12/02/03 01:48:56.31
RoadmaでなくてRoadmapな!


544:nobodyさん
12/02/03 03:11:07.37
× Roadma
○ Readme

スペルは正しく書きましょう

545:nobodyさん
12/02/06 21:53:18.73
CakePHPつかえば彼女できるの

546:nobodyさん
12/02/07 02:09:02.39
ちいたん Yiiつかってまた戻ってきた
やっぱり人口が多いのが一番だね英語知らないから

547:nobodyさん
12/02/07 14:09:10.01
ちいたんもYiiもcodeIgniterも
俺的にはオレオレと変わらないと思ってる。

多少動作が重くても、扱える人口が多いことに意味がある。

548:nobodyさん
12/02/07 19:26:51.77
>>547
明らかにYiiはCakePHPより優れてるよ
日本人の使用者人口が増えれば日本語のリソースも増えてくると思うし
英語がダメな人はもう少し待つほうがいいかもな

549:nobodyさん
12/02/07 19:36:59.22
>>548
本当にYiiが優れてるのなら、もっとブログで情報発信したりスレに書き込んだりしてくれよ
軽く触った感じではCakePHPに次いでいい感じだったけど、ユーザー少なそうで本腰入れる気になれない
ユーザーいないから情報出なくて、情報出ないからユーザー増えないという悪循環にはまってる感じがする

550:nobodyさん
12/02/07 20:08:39.28
で、自分しか使ってないなら=オレオレと変わらないんじゃね?
って考えになるんだよな。

551:nobodyさん
12/02/07 22:20:42.14
>>549
>ユーザーいないから情報出なくて、
日本語で情報探すとそう感じるけど、
英語で探すとけっこう出てくるよ。
てかドキュメントがしっかりしてるからあんま必要ないけどね。

まぁ世界全体でだけど、こんな感じの伸び率
URLリンク(www.google.co.jp)
YiiがCakePHPやCodeigniterと差を縮めていってる
CakePHPに関しては減ってる

日本でもだんだん増えるよ、確実に
ブログはたまに書いてる

552:nobodyさん
12/02/07 22:31:26.34
頑張って俺様のためにドキュメントを増やし給え

553:nobodyさん
12/02/07 23:03:57.00
>>552
おk
お前もせいぜい英語勉強しろよw

554:nobodyさん
12/02/07 23:28:06.02
未だに英語がわからん奴とかいるわけがない
都市伝説だろ

555:nobodyさん
12/02/07 23:37:30.16
明日電車に乗ったら隣の席の人に英語で話しかけてみてください

556:nobodyさん
12/02/08 00:23:47.88
英語が分からんわけではないが、日本語情報が無いと裾野が広がらないと思う

557:nobodyさん
12/02/08 00:28:52.97
はやくして

558:nobodyさん
12/02/08 01:22:28.31
英語わかんねえんだよ
わかればこんなFW使わねえよ

559:nobodyさん
12/02/08 01:28:31.64
こうやって技術者格差って広がっていくんだな

560:nobodyさん
12/02/08 02:25:56.05
cakeが一番わかり易い

561:nobodyさん
12/02/08 02:43:04.37
今の時代、英語と中国語出来れば、どの職業でも食いっぱぐれないだろうな

562:nobodyさん
12/02/08 04:51:19.10
そんなことされたら警察呼ぶわ

563:nobodyさん
12/02/08 10:25:56.72
英語ができればこんなスレにはいない

564:nobodyさん
12/02/08 11:00:04.88
英語できるんだけど、どこに行けばいいの?

565:nobodyさん
12/02/08 11:28:41.60
英語でおk

566:nobodyさん
12/02/08 12:08:44.04
which site is the best discussion forum for cakephp? give me urls.

567:nobodyさん
12/02/08 12:11:29.75
Hi, Guys!

568:nobodyさん
12/02/08 12:14:52.18
what's up?

569:nobodyさん
12/02/08 12:15:51.13
I'm stealth marketing now.

570:nobodyさん
12/02/08 12:18:45.15
Oh really ?

571:nobodyさん
12/02/08 12:19:03.41 FLeGKhAC
a peace of cake!

572:nobodyさん
12/02/08 12:22:28.38
Fack YOU 板違いだにょ

573:nobodyさん
12/02/08 12:40:57.21
lol

574:nobodyさん
12/02/08 15:48:30.68
>>572
oh... miss spell
repeat after me
"Fuck You"

575:nobodyさん
12/02/08 16:25:40.59
thank you,good gay!

576:nobodyさん
12/02/08 16:54:59.72
>>574
Fuck you

577:nobodyさん
12/02/08 17:01:40.67
O mae mo naa

578:nobodyさん
12/02/08 18:10:15.72
your "CakePHP" is common file, on libs or vendors?

579:572
12/02/08 18:39:58.51
小学生かこいつら

580:nobodyさん
12/02/08 21:36:31.59
>>564
日本で専門色翻訳になれば儲かる。

581:nobodyさん
12/02/08 21:44:51.18
>>578
if you use 12.x, on vendors.
if you use 2.0.x on libs.

582:nobodyさん
12/02/09 13:37:44.09
フォームヘルパーの使い方について質問です。

○商品A   ○商品B
■■■    ■■■

○がラジオボタンで、■が商品の画像だとします。
フォームヘルパーのoptionsに配列で選択肢を指定したら
横並びの入力項目が出来るので、
画像付きのこういった表現が出来ません。
どうすればいいのでしょうか?

583:nobodyさん
12/02/09 14:57:42.21
>>582
配列で一気にラジオボタン出すんじゃなくて、別々に出せばいいんじゃないの

584:nobodyさん
12/02/09 16:32:37.53
>>583
いけました。仕様を勘違いしていました。ありがとうございます。

585:nobodyさん
12/02/10 12:20:32.03
質問です
pagenatorのhasNextのような関数を、コントローラー内で呼ぶにはどうすれば良いですか?
ぐぐってもビューでヘルパーを呼び出す方法しか出てきません
コントローラー内で、次のページがあるかどうかで分岐する処理が書きたいです

1.3です

586:nobodyさん
12/02/10 18:01:43.96
質問です

cakephp2.0.6 php5.3.6 apache2.2.17
という環境でcakephpをインストールし接続してみたのですが

Missing Method in AppController

Error: The action webroot is not defined in controller AppController

Error: Create AppController::webroot() in file: app\Controller\AppController.php.

このような文がでて接続がうまくいきません。どなたかご教授お願いします。

(cakephp1.3だとちゃんとRelease Notes for CakePHP 1.3.14に表示されます。)

587:nobodyさん
12/02/10 18:21:21.51
エラーメッセージを良く読め

588:nobodyさん
12/02/10 18:52:31.16
>>587
すみません、いろいろとググったのですがみつからず困ってました。

AppControllerにアクションwebrootがみつからない
ファイルapp\Controller\AppController.php作ってwebroot()を作れ

っと言われてると思うのですが、実際に作るとphpでのエラーがでてしまいます。

Fatal error: Class 'AppController' not found

申し訳ありませんが、ヒント頂ければと思います。

589:nobodyさん
12/02/10 20:19:58.49
>>588
app\Controller\AppController.php
には正確にはどう書いた?

とうか、そもそも、どういうディレクトリにインストールして
どこにアクセスしてる?

590:nobodyさん
12/02/10 20:55:32.66
httpd.confの設定がおかしいと想像。

document rootと、http側のrootが一致してないと見た。

591:nobodyさん
12/02/10 21:02:16.73
webrootが正常に読み込めてないな。
そのあとのエラー的に、>>590の言うとおりパスがおかしいんじゃないかと。
あとhttpd.conf内でmod_rewriteは設定してるよな?
まずはhttpdの設定を見直すよろし。

592:nobodyさん
12/02/10 21:02:49.14
>>589

中には表示されていた
<?php
class AppController extends AppController {
public function webroot() {
}
}

?>←これはなかったので付け足しました

と書きました
ディレクトリはC:\Users\fruit\Desktop\www\sns\cake\2.0\app\Controller\AppController.phpに保存しています
アクセス先はURLリンク(localhost)です

URLリンク(localhost)でのアクセスだとIndex of /php/cake/2.0/app/webrootになってしまいます。

またapacheには
<Directory "C:\Users\fruit\Desktop\www\php\cake">
AllowOverride All
</Directory>
と記述してあります。


どうでしょうか、よろしくお願い致します。

593:nobodyさん
12/02/10 21:04:40.72
>>591

mod_rewriteの設定ですが#ははずしてあります。

594:nobodyさん
12/02/10 21:06:52.99
ごめんさい記述みすしていました

正確には
ディレクトリはC:\Users\fruit\Desktop\www\php\cake\2.0\app\Controller\AppController.phpに保存しています

でした 。wwwをlocalhostとしています。

595:nobodyさん
12/02/10 21:13:17.18
>?>←これはなかったので付け足しました
php.iniで、それの有無に関しての挙動が変更できる。

現在のPHPのデフォルトは、「閉じタグ ?> が無い事が標準」となってる。

初学者なのは分かるけど、いきなりフレームワークに手に入れるとか愚の骨頂。
どれだけの人数がテストしてると思ってるの?

596:nobodyさん
12/02/10 21:26:19.60
>>595
そうだったんですね。初めて知りました!
ありがとうございます。

597:nobodyさん
12/02/10 21:37:46.65
>>589,590,591

一通りhttpd.confをみなおし、ルートも確認し
>>595のとおり?>もはずしてみましたがやはり直りませんでした。

どなたかわかりそうな方いましたら、よろしくお願い致します。

598:nobodyさん
12/02/10 22:18:06.68
>>597
ルートを確認したっていうことだけど、
httpd.conのDocumentRootはどう書いてあるの?

599:nobodyさん
12/02/10 22:22:19.33
>>598
DocumentRoot "C:/Users/fruit/Desktop/www"
<Directory "C:/Users/fruit/Desktop/www">

このように設定してあります。

600:nobodyさん
12/02/10 22:31:07.86
脱線だが、デスクトップにファイル置いて開発するとか、みんなそうしてるの?
アクセス権限とか切り分けが面倒になるから、俺はドライブルートから
浅い所にファイルを置くんだが。


601:nobodyさん
12/02/10 22:40:32.26
>>600
俺はMac使ってるけど
cake本体は /Library/ の中、appは /Users/俺/ウェブ開発/○○アプリ って感じ。
jquery関係とかよく使うアセットはcake本体側に入れとけば複数app作るの楽だし

602:nobodyさん
12/02/10 23:53:22.09
>>599
・http.confにOptions FollowSymLinksの指定がしてあるか
・そもそもmod_rewriteはLoad Moduleされてるのか
・apacheのエラーログ確認
・各.htaccessにrewrite baseの設定が要るかも?

603:nobodyさん
12/02/11 00:17:43.73
>>600
ふつうはしない。
が、初心者はだいたいそうする。

604:nobodyさん
12/02/11 00:55:37.73
どなたか>>585お願いします

605:nobodyさん
12/02/11 02:53:33.10
>>604
ヘルパーはApp::importで読み込んでnewすれば使えるけど、
わざわざ呼ばんでも
debug($this->paginate)とかdebug($this->params)とかやったらなんかヒントあるんじゃね?

606:nobodyさん
12/02/11 08:51:11.48
>>602
Options FollowSymLinksは記述してためしてもAppController.phpのエラーが返ってきます。

Load Moduleはしてあります

apacheのエラーは
[Sat Feb 11 08:43:04 2012] [error] [client 127.0.0.1] PHP Fatal error: Class 'AppController' not found in C:\\Users\\fruit\\Desktop\\www\\php\\cake\\2.0\\app\\Controller\\AppController.php on line 2
となっていてブラウザ上でみるphpエラーと同様になってます

rewrite baseを設定してみたらcssが読み込まれなくなりました

607:nobodyさん
12/02/11 13:31:36.87
>>606
携帯からなんで詳しい設定名わからんけど、
index.phpをインデクスファイルとして読み込む設定になってないんじゃないの

608:nobodyさん
12/02/13 23:59:06.34
1.3でjoinしているカラムをソートするにはどうすればいいのでしょうか?
$paginator->sort('投稿数', 'Post.total_num')

みたいにビューに書いてもソートされません。

609:608
12/02/14 00:16:33.57
自己レスです。virtualFields使えば出来ました。
今まで使い方を理解してませんでしたが、
$this->User->virtualFields = array(
'total_num' => 'COUNT(Post.user_id)'
);

みたいにすればいいんですね。

610:nobodyさん
12/02/14 03:08:29.79
CakePHPかRubyOnRailsを習得するなら
どちらを優先的にすべきですか?

RORのほうはサーバーの構築からが必要だったりでお気軽感覚では出来ず導入のための敷居は高い気がします。
しかし、Deviseというプラグインがあったりするので、いちいちユーザー登録や、ユーザー管理、ログイン管理の機能を作らなくても済んだりします。

一方でCakePHPなら未だに情報交換が活発になされてますし、あまり環境にこだわらずフォルダごと、ぶちこめば大抵うごいてくれます(データベース設定やパーミッション等はありますが)


両方出来る人とかに聞きたいのですが、どちらがオススメですか?

611:nobodyさん
12/02/14 03:20:43.81
趣味か仕事かどっちだ?

612:nobodyさん
12/02/14 03:29:17.24
仕事で使うならこれからはCodeigniterだよねやっぱり

613:nobodyさん
12/02/14 03:51:01.11
今からCake覚えて何かいいことあんの?

614:nobodyさん
12/02/14 10:42:41.43
>>610
好きな方か、仕事で教えてくれる環境にある方。
ぶっちゃけやることは変わらん。

615:nobodyさん
12/02/14 15:53:13.31 XKQCpFOZ
CakePhp2.0初心者で勉強しています。
セッションを使用して、異なるコントローラー間でデータの受け渡しを行いたいのですができません。
使用方法が間違っているのでしょうか?

異なるコントローラー間で以下の2行を実行しています。
$this->Session->write('id','hogehoge');
$hoge = $this->Session->read('id');


core.phpのセッション設定は以下の設定です。

Configure::write('Session', array(
'defaults' => 'php'
));


616:nobodyさん
12/02/14 17:04:00.93
>>615
上の一行をあるコントローラでやって、
下の一行を違うコントローラでやってると言う意味だよね?

まず下の一行を実行する前に

if($this->Session->check('id))
でセッション変数自体が存在しているか確認するのはやってみた?

617:615
12/02/14 17:37:28.16
>>616
返信ありがとうございます。
windows環境で作成をしてて、なぜかPCを再起動したら取得できましたm(_ _)m ナゾです・・ 

618:nobodyさん
12/02/14 23:58:24.06
>>611
趣味ですが
仕事にも将来的には生かせればと思います

619:nobodyさん
12/02/17 14:11:59.26
index.phpからcakeにアクセスするだけじゃなくて、
別名を付けたファイル名からアクセスしたい場合、
ファイル内に $_GET['url'] = '/user/index' みたいに書けば良いだけですかね?
表向きはピュアPHPみたいなURLにしたいです。

620:nobodyさん
12/02/17 14:33:54.66
>>619
意味が分からん。

foobar_controller.php
foobar_index.ctp
foobar_alt_index.ctp

URLとファイル名は必ずしも強固に1体1対応で無くてもいいんだよ。
render('ctpファイル名')でいくらでも描画先変えられるし、redirectでもいい。

特定のURLのみ、URLのファイル名とは異なるctpファイルを読み込みたい場合は、
controller側でfunction URL名(ファイル名)を作ればいくらでも好きなファイルをrender出来る。

621:nobodyさん
12/02/17 14:47:34.93
>>620
そうじゃなくて、基本的にcakeにアクセスするのって
webtoor内のindex.phpと.htaccessを元にしてるじゃないですか?
それを通さないで、単体のファイルで動かしたいって事です。

622:nobodyさん
12/02/17 14:50:28.33
勝手に動かせばいい

623:nobodyさん
12/02/17 22:15:37.39
>>618
cakephp覚えたところで仕事無し
railsならあるぞ

624:nobodyさん
12/02/17 22:18:17.74 /liskI/Y
>>623
あなたはないかもしれないが、こちらは一杯あるよ

625:nobodyさん
12/02/17 23:19:48.84
railsの仕事なんて見たことないな
たまたまだろうけど

626:nobodyさん
12/02/17 23:35:34.41
cakephpにはrailsのdeviseのような
痒いところに手が届くログイン管理プラグインが無いのが痛い

627:nobodyさん
12/02/18 00:41:23.45
無かったら作ればいいじゃない

628:nobodyさん
12/02/18 07:14:15.10
>>621
webroot直下に置いたhtmlファイルとか、好き勝手に動かせるよ。

webroot/phpmyadmin
とかを本番機で動かしてるし。

ここでhtmlなり、ctpなり、好きなファイル置けばいいのでは?

629:nobodyさん
12/02/18 11:05:37.21
今更のcakeの仕事って、メンテばかりでつまらなそうだな。

630:nobodyさん
12/02/18 11:52:58.83
仕事がつまらないのは当たり前だろ
楽しさを求める奴って一定の割合でいるけど何なの?世間ナメてるの?

631:nobodyさん
12/02/18 14:10:48.45
世間w世の中w

632:nobodyさん
12/02/18 14:15:16.70
>>630
俺は楽しいけど
まぁ自営だし

633:nobodyさん
12/02/18 19:32:45.39
仕事がつまらないとか言ってる人って、アルバイトしかした事ない学生か、本気で仕事した事ないダメ人間だけだろ。

634:nobodyさん
12/02/18 19:52:11.24
『整備に当る強兵が しっかりやって 来てくれと 愛機に祈る 親心』

戦闘機とは勝手が違うかもしれんが、職人であり整備士でもあるウェブ開発者が『メンテつまらない』なんて、間違っても言えない言葉だと思うがな。
作品に対する愛着と言うか、親心はないのかと思う。

635:nobodyさん
12/02/18 19:54:15.84
本気だろうが何だろうがつまらんものはつまらん
愛があってもつまらんものはつまらん

636:nobodyさん
12/02/18 19:54:39.40
愛着や親心と楽しさは違うだろ

637:nobodyさん
12/02/18 20:03:42.12
>>636
「自分の子供は糞までかわいい」って話じゃね?
子供の世話とバグ取りや保守作業って同じ感覚でやってたわ
むろんどっちも楽しい。
しかもメンテっつーか仕事なら、やっただけ対価までもらえるんだぞ?
毎日wktkしとるわw

638:nobodyさん
12/02/18 22:23:06.59
1から作ったものなら良いかもしれんが
他人が作ったものの尻拭いはごめんだ

639:nobodyさん
12/02/18 23:12:25.71
別にどの業界だってメンテはメンテナーがいるわけよ。
ビルだって自動車だってそうだろ。
仕事として受けたならメンテのプロとしてやらないと。面白くないべ。

640:nobodyさん
12/02/19 00:03:12.80
普通にバイトでも楽しいけどな。
楽しくいないのは店長や客が嫌な奴だったとか
人間関係の面がほとんどだろ。

641:nobodyさん
12/02/19 00:21:41.04
今スマホ開発やっててWebAPIをCakePHP使ってんだけど楽しいよ。
俺は仕事は楽しくなくちゃ嫌だわ。

642:sage
12/02/19 00:25:24.87
CakeやろうがRailsやろうがDjangoやろうが同じ不満をもらすだろうな

643:nobodyさん
12/02/19 09:24:53.81
CAKEPHP1.3でWEBアプリを作っています。

ブラウザの「戻る」ボタンを押して前の画面に戻る際に、
必ずサーバーに問い合わせるようにしたいのですが、
キャッシュの設定を「session_cache_limiter('nocache')」にしていても
「ページの有効期限切れ」が表示される場合があります。
(具体的には、画面遷移時に一度入力チェックでエラーを表示した後、
次画面に遷移し、ブラウザの戻るボタンを押した場合。)

「ページの有効期限切れ」が表示されず、前画面に戻るには
どのような対応が必要でしょうか。
(ページの有効期限切れは、具体的に何を見て判定しているのでしょうか)


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch