[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 12/09 18:15 / Filesize : 230 KB / Number-of Response : 996
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【PHP】フレームワーク CakePHP 13ホール目【v2.0】



1 名前:nobodyさん mailto:sage [2011/11/09(水) 01:05:10.60 ID:???]
CakePHPは、Ruby on Railsの概念の多くを取り入れた、Rails流の高速開発とPHPの機動性を兼ね備えたフレームワークです
CakePHPから派生したLithium(li3)も専スレできるまではここでどうぞ
質問するときはCakePHPのバージョンを書きましょう

※他フレームワークとの比較等はスレ違いです
テンプレは>>1-5くらい

■本家
www.cakephp.org/
APIドキュメント
api.cakephp.org/
the Bakery
bakery.cakephp.org/
CakeQs
cakeqs.org/
CheatSheet (PDF)
cakephp.org/files/Resources/CakePHP-1.2-Cheatsheet.pdf
github - cakephp
github.com/cakephp

■日本語公式
cakephp.jp/
フォーラム
cakephp.jp/modules/newbb/
cookbook(マニュアル)
book.cakephp.org/ja

前スレ
【PHP】フレームワーク CakePHP 12ホール目【笑】
hibari.2ch.net/test/read.cgi/php/1309505626/

190 名前:nobodyさん mailto:sage [2011/12/04(日) 02:43:31.05 ID:???]
同意せざる終えない。使い勝手良すぎ

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

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

193 名前:nobodyさん mailto:sage [2011/12/04(日) 15:54:37.24 ID:???]
>>191
コントローラ内のbeforeFilter内で
parent::beforeFilter();
ってやってる?

194 名前:191 mailto:age [2011/12/04(日) 16:19:33.30 ID:???]
>>193
それでした
app_controllerを作ったのがはじめてだったので、決まりごとを理解してませんでした
ありがとう御座いました

195 名前:nobodyさん [2011/12/07(水) 14:22:49.37 ID: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さん mailto:sage [2011/12/07(水) 17:18:20.77 ID:???]
検索処理で該当データなしの場合、「(検索条件)に一致する情報は見つかりませんでした。」みたいなメッセージを出力させたいのですが、
どこにどう記述するべきでしょうか?Controller?View?

197 名前:nobodyさん mailto:sage [2011/12/07(水) 18:02:05.03 ID:???]
View


198 名前:nobodyさん mailto:sage [2011/12/07(水) 21:33:41.84 ID:???]
Viewに決まってるだろ



199 名前:nobodyさん mailto:sage [2011/12/07(水) 23:38:47.74 ID:???]
>>196
controllerかmodelで分岐させて、controllerでset
viewの出したい箇所に変数を<?php echo $message ?>

200 名前:nobodyさん mailto:sage [2011/12/07(水) 23:41:58.93 ID:???]
>>199
いや、View内で分岐だろ

201 名前:199 mailto:sage [2011/12/07(水) 23:45:59.78 ID:???]
うちはmodel::findのif(empty($data))の分岐でviewに渡す文字列またはarray。
viewの方にもif(isset())で文字列またはarray(リスト表現)

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

203 名前:nobodyさん mailto:sage [2011/12/08(木) 01:32:48.80 ID:???]
>>202
スレあるんなら誘導してくれよ

【php】fuelphpについて語ろうぜ
hibari.2ch.net/test/read.cgi/php/1321843505/

204 名前:nobodyさん mailto:sage [2011/12/08(木) 01:37:07.11 ID:???]
アクセス修飾子にvarが使われてる時点で、すごい気持ち悪い。

205 名前:nobodyさん mailto:sage [2011/12/08(木) 02:27:45.30 ID:???]
DebugKit、2.0の環境で使えてます?

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

206 名前:nobodyさん mailto:sage [2011/12/08(木) 02:47:03.37 ID:???]
Lithiumはどうなったのよ

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

208 名前:nobodyさん mailto:sage [2011/12/08(木) 10:23:40.21 ID:???]
逆に他のフレームワークだと書き込みは多いのか?



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

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

211 名前:nobodyさん mailto:sage [2011/12/08(木) 18:21:25.83 ID:???]
>>210
そのくらいは最初にブログチュートリアルで学ぶかマイグレーションガイド見てください

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

213 名前:nobodyさん mailto:sage [2011/12/10(土) 19:52:45.95 ID:???]
よっしゃ、まかせろ!

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

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

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

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

217 名前:216 mailto:sage [2011/12/11(日) 19:19:22.12 ID:???]
すみません
Cookie削除したら解決しました

218 名前:nobodyさん mailto:sage [2011/12/11(日) 20:39:39.12 ID:???]
>>213
まだですか



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

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

220 名前:nobodyさん mailto:sage [2011/12/11(日) 21:06:56.91 ID:???]
>>219
パス間違えました
webroot/media/transfer/img/ です。

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

222 名前:nobodyさん mailto:sage [2011/12/11(日) 21:43:21.91 ID:???]
>>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さん mailto:sage [2011/12/12(月) 11:11:03.41 ID:???]
Cakeの実行速度が遅いので、なるべく急いで他のフレームワークに移行したい場合
おすすめがあるとしたら何でしょうか?
移植のしやすさと得られるパフォーマンスの改善のバランスが良いもの
んなもん経験者にしかわからんと思うが、もしいたら

224 名前:nobodyさん mailto:sage [2011/12/12(月) 11:29:31.97 ID:???]
なるべく急いで他のフレームワークを取得できるなら
Cakeの実行速度を上げる方法を学んだ方が良いですよ。

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

226 名前:nobodyさん mailto:sage [2011/12/12(月) 13:33:57.79 ID:???]
App::import()が遅いです

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

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

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



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

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

231 名前:nobodyさん mailto:sage [2011/12/12(月) 18:14:26.06 ID:???]
App::import()が遅いなら普通にinclude・requireすればいいのと一緒だな

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

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

233 名前:nobodyさん mailto:sage [2011/12/12(月) 22:02:32.47 ID:???]
pluginは有志開発だから、過剰な期待しちゃいかんよね

234 名前:nobodyさん mailto:sage [2011/12/12(月) 22:15:59.53 ID:???]
メディアプラグインは2.0でうごくん?

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


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

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

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

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

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

238 名前:nobodyさん mailto:sage [2011/12/13(火) 11:31:08.57 ID:???]
なんか陰湿でキモい



239 名前:nobodyさん mailto:sage [2011/12/13(火) 15:08:02.43 ID:???]
うかつに質問も出来ないこんな2ちゃんねるじゃ

240 名前:nobodyさん mailto:sage [2011/12/13(火) 15:53:33.42 ID:???]
自分で分かるならわざわざ質問するなとは思わないか?

241 名前:nobodyさん mailto:sage [2011/12/13(火) 16:19:08.03 ID:???]
>>239
ぽいずん

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

243 名前:nobodyさん mailto:sage [2011/12/14(水) 01:34:17.83 ID:???]
いや、回答出してるじゃん

244 名前:nobodyさん mailto:sage [2011/12/14(水) 17:39:11.08 ID:???]
CodeIgniterは覚えたからCakePHPも覚えたいと思うんですけど難しいよ


245 名前:nobodyさん mailto:sage [2011/12/14(水) 17:40:34.96 ID:???]
モデルってデータベースに接続しないといけないの?
モデルに変数でデータを入れててコントローラーからそれらの変数を取得ってできないの?

246 名前:nobodyさん mailto:sage [2011/12/14(水) 17:41:52.04 ID:???]
グローバル変数みたいなことか?出来ると思うけど。
あと、データベース使わなくても使えるよ。

247 名前:nobodyさん mailto:sage [2011/12/14(水) 23:57:19.24 ID:???]
Railsのせいでモデル=データベースの1テーブルって
間違った考えが広まってしまったよな。

248 名前:nobodyさん mailto:sage [2011/12/15(木) 00:06:20.83 ID:???]
4



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

250 名前:nobodyさん mailto:sage [2011/12/15(木) 11:44:42.72 ID:???]
同名ならそりゃそうだ

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


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

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

253 名前:nobodyさん mailto:sage [2011/12/15(木) 13:24:42.38 ID:???]
PHPって後からつけたしつけたし、つぎはぎみたいな言語だし
フレームワークは苦労するわな

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

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

255 名前:nobodyさん mailto:sage [2011/12/15(木) 17:32:59.52 ID:???]
それはモデルに書くべきじゃないの?
コントローラーは薄く、モデルは厚く

256 名前:nobodyさん mailto:sage [2011/12/15(木) 18:14:13.62 ID:???]
>>251

せめて

function actionIndex()
function actionView()

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

257 名前:nobodyさん mailto:sage [2011/12/16(金) 13:25:33.43 ID:???]
Modelの中身が突如出力されだしたんですが消し方知ってる方いませんか?
www.dotup.org/uploda/www.dotup.org2386365.png



258 名前:257 mailto:sage [2011/12/16(金) 13:34:08.67 ID:???]
自己解決 <php がありませんでしたw



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

260 名前:nobodyさん mailto:sage [2011/12/16(金) 21:55:12.50 ID:???]
<php じゃ動きません

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

262 名前:nobodyさん mailto:sage [2011/12/16(金) 23:38:25.39 ID:???]
一生のうちPHPで書くアプリケーションが3つほどまでで、書き直しを一切しないというなら完全に同意してもいい

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

264 名前:nobodyさん mailto:sage [2011/12/17(土) 06:04:20.02 ID:???]
セッションが設定した時間内で切れてしまうのですが、
原因として何が考えられますか?

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

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

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

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

267 名前:nobodyさん mailto:sage [2011/12/17(土) 11:42:27.08 ID:???]
>>266
findする意味がわかんないんだけど。
saveするだけが一番早いだろうに。

268 名前:nobodyさん mailto:sage [2011/12/17(土) 14:55:06.91 ID:???]
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さん mailto:sage [2011/12/17(土) 15:59:01.03 ID:???]
user_idがユニークでインデックスあたってれば、後者のほうが速そう

270 名前:nobodyさん mailto:sage [2011/12/17(土) 18:54:27.72 ID:???]
>>267
findしないと、idがわからない

271 名前:nobodyさん mailto:sage [2011/12/17(土) 18:58:31.20 ID:???]
>>268
後者が速いよな。
CakeではupdateAllか。それ以外方法ないよな?

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

273 名前:nobodyさん mailto:sage [2011/12/17(土) 21:10:11.26 ID:???]
>>272
debugが0なら消える

274 名前:nobodyさん [2011/12/18(日) 04:48:44.53 ID: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さん mailto:sage [2011/12/18(日) 18:19:44.28 ID:???]
>>223
どこが遅いかの原因解明をまず行うべきです。

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

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

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

277 名前:nobodyさん mailto:sage [2011/12/19(月) 21:46:59.93 ID:???]
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さん mailto:sage [2011/12/19(月) 22:57:47.33 ID:???]
>>277
Set::extract使うべし



279 名前:nobodyさん mailto:sage [2011/12/20(火) 05:19:51.29 ID:???]
え、そういう問題?

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

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

282 名前:nobodyさん mailto:sage [2011/12/20(火) 12:16:02.08 ID:???]
>>277
findするときに、joinsオプション使って明示的にJOINする

283 名前:nobodyさん mailto:sage [2011/12/20(火) 12:36:01.65 ID:???]
>>281
よくやる。

284 名前:nobodyさん mailto:sage [2011/12/20(火) 14:59:31.58 ID:???]
>>281
俺は↓する
$data = $this->User->find('all');
$user_data = $data['User']

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

285 名前:nobodyさん mailto:sage [2011/12/20(火) 16:07:14.62 ID:???]
>>281
$this->data = $data
ってやると、formヘルパーの値valueに自動でセットするためにキーがついてからね。

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

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

287 名前:nobodyさん mailto:sage [2011/12/20(火) 17:36:47.14 ID:???]
>>281
じゃまくせえとは思うけどアソシエーションを考えると仕方ないなと思ってそのまま使ってる

288 名前:nobodyさん mailto:sage [2011/12/21(水) 08:45:16.75 ID:???]
CakeEntity使えよ。色々捗るぞ



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

290 名前:nobodyさん mailto:sage [2011/12/21(水) 13:07:35.76 ID:???]
>>286
あくまで例を書いただけだが・・・







[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<230KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef