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


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

【PHP】フレームワーク CakePHP 17ホール目【v2.4】



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

※他フレームワークとの比較等はスレ違いです

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

■日本語公式
cakephp.jp/
フォーラム
cakephp.jp/modules/newbb/
cookbook(マニュアル)
[2.x] book.cakephp.org/2.0/ja/index.html
[1.3] book.cakephp.org/ja

※前スレ
kohada.2ch.net/test/read.cgi/php/1378659370/

270 名前:nobodyさん mailto:sage [2014/04/16(水) 19:41:36.54 ID:???]
>>266は設計がおかしいんじゃないかとか質問内容からは読み取れないことを
書いているうえに肝心の実現方法を書いていないので不適切な回答だと思うが
>>267の結論はもっと意味不明で全く>>266と噛み合っていないので
>>268で呆れられてしまったということだろう

たぶん>>266が「できる」と書いたのは
execやpopenでcake.shやcake.batを呼び出すことじゃないかと予想してみる
OS依存なので個人的にはお勧めできないが

Shellとコントローラの両方から「標準で」使えるものはモデルだけだと思うよ
コントローラやコンポーネントやヘルパーなどをnewして使うようなやり方は
動作はするかもしれないが正しいやり方とは思えないな

271 名前:nobodyさん mailto:sage [2014/04/16(水) 20:07:27.22 ID:???]
横だけど、正しい・正しくないは関係ないと思うけどな。
「正しい書き方ではないけど動作する」なら、それでいいんじゃないか?

こんな事言うといつも「複数で開発する場合は迷惑だ」とか言う奴いるけど、
目的は「動作する」事であり、綺麗なソースを書くことじゃない。

それに複数人で開発するなら
「良い書き方がわからなかったから、この方法にした」
って説明すればいいだけだろ。情報共有しろよ。

272 名前:nobodyさん mailto:sage [2014/04/16(水) 20:14:11.37 ID:???]
小難しい話は置いといて、 >>265
Shell で呼び出す処理を別の Model だか Lib のクラスに移して、
ShellからもControllerからも実行できるようにすれば良い

273 名前:nobodyさん mailto:sage [2014/04/16(水) 20:39:15.00 ID:???]
Shell使う処理で、Modelだけで済む事って無いと思うんだけどなぁ
よくあるメール一斉送信とかShellで作るけど、
その時の条件分岐やらModelに対する指示なんかはControllerに書くわけで。
メールの送信自体はライブラリ化しても良いと思うけど。

274 名前:nobodyさん mailto:sage [2014/04/16(水) 22:05:21.32 ID:???]
テストのためにそういうのが出来ないかって話なんだから正しい必要はないだろ
それができるとテストが便利で実装が楽でバグが減るんだっていうんだから

設計だとか綺麗かどうかとか関係ないだろ

275 名前:nobodyさん mailto:sage [2014/04/16(水) 23:00:28.05 ID:???]
いつからテストの話になったんだ

276 名前:nobodyさん mailto:sage [2014/04/17(木) 00:07:52.39 ID:???]
テスト機能の事じゃなくて、「試す」って意味の「テスト」じゃないか?

277 名前:nobodyさん [2014/04/17(木) 00:13:59.42 ID:SXCfNI/g]
大規模なシステムになった場合、PHPデバッガー等を使って
1行ずつステップデバッグ実行をした方が効率が良いものなのでしょうか?

cakePHPとかみたいなFWを使っている場合には
デバッガーがそこまで追い切れるのか若干気になります。

皆さんは、PHPで業務システムを作る時にはデバッガーを使っていますか?
それとも dumpで開発していますか?

278 名前:nobodyさん mailto:sage [2014/04/17(木) 00:19:14.66 ID:???]
>>277
人海戦術に頼る。クラウドソーシングとかで安く依頼できるしな。
やっぱ、システムだけで対応しようとすると、何かと抜けが出るよ。



279 名前:nobodyさん mailto:sage [2014/04/17(木) 00:26:59.39 ID:???]
自分はeclipseとXdebugを使ってステップ実行できる環境を使ってるよ
ステップ実行といってもすべての行を1行ずつ実行する必要はなくて
処理を追いたいところにブレークポイントをつけておけばいいだけ
ステップ実行するまでもない場合はdebug関数で変数の中身を画面で確認してる

>>261
2.3.8で試してみたらfalseになったんでバージョンが原因みたいだね

>>263
自分もreadは使ったことなかったんで試してみたところ、再現を確認
なかなか嫌な動きだわ

280 名前:nobodyさん mailto:sage [2014/04/17(木) 02:16:53.26 ID:???]
スレチだが、新しい方に移動した方がいいの?

281 名前:nobodyさん [2014/04/17(木) 06:59:31.54 ID:+GQ/cWTu]
CakePHPで複合主キーで構成されるテーブル同士の結合は
どのように実現すればよいのでしょうか?

[テーブル左] 列A*、列B*、列D*、列E*
[テーブル右] 列A*、列B*、列C
 (*は主キー)

のような構成で、
[テーブル左] に [テーブル右] を 列A、列Bをキーとして
列C を外部結合したいと考えています。
$virtualFields で1つにまとめて、$primaryKeyで定義しなす?

282 名前:nobodyさん mailto:sage [2014/04/17(木) 09:07:56.95 ID:???]
>>277
デバッカ使ってる

エクステンションでなければ中まで追えるので、cakeも追えるよ

283 名前:nobodyさん mailto:sage [2014/04/17(木) 12:22:28.87 ID:???]
特性スープやでぇ

284 名前:nobodyさん mailto:sage [2014/04/17(木) 12:35:55.72 ID:???]
特性スープやでぇ

285 名前:nobodyさん mailto:sage [2014/04/17(木) 14:12:21.40 ID:???]
>>281

'joins' キーでちまちま作りこんだほうが良い。
というか、以前調べたときはそれしか無理だった。
他に方法あれば教えて欲しい。

Cake3 から複合キー対応らしいけどね。

286 名前:nobodyさん mailto:sage [2014/04/17(木) 23:16:01.90 ID:???]
ツリービヘイビアを使ったカテゴリで、
親カテゴリから子カテゴリまで何階層あるか調べる方法って無いですかね?
無限にカテゴリを作れるのではなく、ある程度階層指定したいと思います。
簡単に表示する方法があるなら、エラー判定しやすいのですが

287 名前:nobodyさん mailto:sage [2014/04/17(木) 23:45:58.91 ID:???]
親要素の条件は、子エンティティと比較して
lft がより小さく且つrghtがより大きいので
子エンティティを $child、モデルのエイリアスを Foo 、階層を $depth とする場合
こんな風にしたら取れるはず

$childLft = $child['Foo']['lft'];
$childRght = $child['Foo']['rght'];
$conditions = array('Foo.lft <' => $childLft, 'Foo.rght >' => $childRght);
$depth = $Foo->find('count', compact('conditions')); // 親の階層数

288 名前:nobodyさん mailto:sage [2014/04/18(金) 05:19:37.24 ID:???]
>>285
ありがとうございます
Cake3で対応ですか!期待して待ってます



289 名前:286 mailto:sage [2014/04/18(金) 10:55:29.76 ID:???]
>>287
以下の様な階層だとして
テスト→子テスト→孫カテゴリ

287さんの方法では、「子テスト」を選ぶと1と表示され、
「孫テスト」を選ぶと2が表示されるなど、1つ上の階層番号しか表示されません。

290 名前:286 mailto:sage [2014/04/18(金) 10:56:34.64 ID:???]
すみません。2行目を書き間違えました。

テスト→子テスト→孫カテゴリ
ではなく
テスト→子テスト→孫テスト
でした。

291 名前:nobodyさん [2014/04/18(金) 13:04:19.06 ID:N7yuefiZ]
Cakeをインストールすると最初の画面でSecurity.saltとcipherSeedを変更する様に言われるけど、これは何桁でもいいの?

292 名前:nobodyさん mailto:sage [2014/04/18(金) 13:22:10.90 ID:???]
いいよ

293 名前:nobodyさん [2014/04/18(金) 13:39:34.12 ID:N7yuefiZ]
そうか、ありがとう

294 名前:nobodyさん mailto:sage [2014/04/18(金) 13:45:58.83 ID:???]
>>290
じゃぁ1足せよw
「親の階層数」って書いてるじゃん

295 名前:nobodyさん [2014/04/19(土) 16:38:03.71 ID:2kVxcvEH]
Cake人気ないな…
とうとうCakePHP bake なんたら でぐぐると食べ物のケーキの記事ばかり出てくるようになってしまった

296 名前:nobodyさん mailto:sage [2014/04/19(土) 17:11:08.54 ID:???]
ねぇよ

297 名前:nobodyさん mailto:sage [2014/04/19(土) 20:27:05.90 ID:???]
Cakeは海外で特に人気ないからな

298 名前:nobodyさん mailto:sage [2014/04/19(土) 20:37:49.07 ID:???]
え、国内の方がないと思ってた



299 名前:nobodyさん mailto:sage [2014/04/19(土) 20:39:03.09 ID:???]
PHPは日本で特に人気ないけどな

300 名前:nobodyさん [2014/04/19(土) 20:57:23.19 ID:2kVxcvEH]
そうか?PHPの仕事しか来たことないわ。Rubyとかどこで使ってるの?って感じ

301 名前:nobodyさん mailto:sage [2014/04/19(土) 21:42:49.70 ID:???]
>とうとうCakePHP bake なんたら でぐぐると食べ物のケーキの記事ばかり出てくるようになってしまった

どこの検索エンジンだよそれw

302 名前:nobodyさん mailto:sage [2014/04/20(日) 01:46:02.06 ID:???]
人気っていうか、すごい使われるけど評価は低いよね。
よく叩かれてる

303 名前:nobodyさん mailto:sage [2014/04/20(日) 09:30:13.88 ID:???]
PHPは日本でも使われてるんだが
やっぱり、Ruby、Perlの使われ方度合いに比べると
全然使われてないことになる

304 名前:nobodyさん mailto:sage [2014/04/20(日) 09:57:55.62 ID:???]
ruby使ったことないけど、phpとさほど変わらんのでしょ?
最終的には好みの問題みたい。

305 名前:nobodyさん mailto:sage [2014/04/20(日) 10:42:30.47 ID:???]
どこが変わらないって言ってるかはわからんが

RailsとCakeの今が、いい意味でも悪い意味でもRubyとPHPの差の一つ

306 名前:nobodyさん mailto:sage [2014/04/20(日) 11:18:10.27 ID:???]
利用者が増えるに従ってアンチが増加するのは何でも一緒。
FWは型を提供するものだから、その型が気に入らなければ別のを使うしか無い。
無ければ作るか自分を合わせるしか無い。

明確な問題点があるんだったら、コミュニティに参加して改善を提案してみたことはあるのかな?
他を調査してより良い解決策があるんなら、具体的にその利点をここの読者に教えてあげようとしないのかな?

まぁ、自分一人で決めることも出来ないから、愚痴を言いたくなる気持ちもわかる。

307 名前:nobodyさん mailto:sage [2014/04/20(日) 11:24:53.22 ID:???]
>>303
え?
Perlは人口減って、昔から使ってた一部の会社が使ってるばかりだし、
Rubyは最近ようやく増えてきたかなって程度だろ。

308 名前:nobodyさん mailto:sage [2014/04/20(日) 11:30:03.25 ID:???]
>>307
海外での人気に比べるとな



309 名前:nobodyさん mailto:sage [2014/04/20(日) 12:34:02.33 ID:???]
正直サーバーサイドはFWが何でもいいわ

310 名前:nobodyさん mailto:sage [2014/04/20(日) 12:38:12.89 ID:???]
ガラパゴス言語
Perl,Ruby

ガラパゴスFW
CakePHP

って言いたいのか

実際そうだけどな

311 名前:nobodyさん mailto:sage [2014/04/20(日) 14:23:15.37 ID:???]
世界的なシェアだと最近はLaravelが一番なんだっけ?
(シェアじゃなくてGitHubの人気だったか?)
あと、YiiとかCIもCakePHPよりは上なんだよな確か。

でもオープンソースだからといってもシェアに関してはプロプライエタリと同じで、
必ずしも良い物が普及するとは限らないよな。

たとえばWordPressみたいに、酷いシロモノでも
マーケティングが勝利するオープンソースもあるし。

312 名前:nobodyさん mailto:sage [2014/04/20(日) 15:51:49.84 ID:???]
rubyはネットでは見るけど、現場では全然見ない

313 名前:nobodyさん mailto:sage [2014/04/20(日) 17:08:13.64 ID:???]
Yiiは共産圏で人気らしいね

314 名前:nobodyさん mailto:sage [2014/04/20(日) 18:32:52.08 ID:???]
>>312
織田裕二みたいですね

315 名前:nobodyさん mailto:sage [2014/04/21(月) 09:50:09.63 ID:???]
Rubyって単に取り上げてるブログが目につく(ブクマなどで)だけで
多いと錯覚しているだけだろ?

そら、PHPみたいに成熟された言語より
Rubyのような比較的新しくてそれほど一般化していない
技術のほうが注目を浴びるに決まってるわw
それと混同して「PHPは人気なくなった」とか目論見が甘すぎ

316 名前:nobodyさん mailto:sage [2014/04/21(月) 15:57:26.42 ID:???]
RubyもPHPと同時期に出来た言語なんだが

317 名前:nobodyさん mailto:sage [2014/04/21(月) 18:53:01.40 ID:???]
ScalaとGoが注目浴びてるな

318 名前:nobodyさん mailto:sage [2014/04/25(金) 10:49:57.10 ID:???]
リファラをコントローラーとアクションに分解する機能ってありませんよね?
$this->referer()だと普通にリファラが表示されるだkです。



319 名前:nobodyさん [2014/04/25(金) 13:39:29.24 ID:s6GwqSqm]
CakeRequest にそれっぽい機能あった気がする

320 名前:nobodyさん mailto:sage [2014/04/25(金) 15:10:13.57 ID:???]
Routerクラスがそれを担当している気がする

何を作ろうとしてるのか知らないけど、
リファラを使って何かをする機能ってだけで、ちょっと不穏な空気を感じてしまう。

321 名前:318 mailto:sage [2014/04/25(金) 16:51:30.47 ID:???]
>>320
管理画面なのですが、例えば削除(delete)する場所って
一覧(index)と詳細(detail)で出来るとします。
削除した後に全部一覧に戻せば良いだけかもしれませんが、
改ページした後に削除した場合、リファラで前の画面に戻したいのです。

つまり、要件として
・一覧から削除 → 前のページにリダイレクト
・詳細から削除 → 一覧にリダイレクト

となります。これをするために、リファラを分析して
「どこのページからのアクセスか?」がわかれば簡単と思い、質問しました。

322 名前:nobodyさん mailto:sage [2014/04/25(金) 17:39:22.10 ID:???]
削除なら GET じゃなくて FormHelper::postLink() を使うのが今の標準だと思うんだけど、
その場合なら引数にリダイレクト変数をセットできる。

コントローラ側で汎用的な処理をしたいんならやっぱりリファラでやったほうが良いのかも。

URLの解析は >>320 の言ってる通りRouter::parse()メソッドがある。
ただ、リファラをそのまま渡してもダメで、
アプリケーションのルートからのパスにする必要があったかもしれない。

323 名前:nobodyさん mailto:sage [2014/04/27(日) 13:54:25.75 ID:???]
海外の求人ちょっと見たらRailsが多くて驚いた
PHPばっかりの日本はガラパゴスなんかな

324 名前:nobodyさん mailto:sage [2014/04/27(日) 15:43:07.45 ID:???]
rails多いといっても
phpのほうがrubyよりは一応多いでしょ

rubyの9割以上の求人がrailsってのがすごいよな

railsだとpostgresql求人増えてるし
cakephp+mysqlのスペックだとガラパゴスになりそうだな

325 名前:nobodyさん mailto:sage [2014/04/27(日) 16:13:12.62 ID:???]
せやかて駆動

326 名前:nobodyさん mailto:sage [2014/04/27(日) 17:19:21.88 ID:???]
ん? Cakeスレかここ。 phpの安直さは最高! fuelphp使ってる。 確かにCakeはオワコンだな。

327 名前:nobodyさん mailto:sage [2014/04/27(日) 18:49:35.25 ID:???]
どこまでいっても、所詮Railsのパチもんだしな。
Djangoとはえらい違いだ。

328 名前:nobodyさん mailto:sage [2014/04/27(日) 20:59:13.46 ID:???]
>>326
fuelphpって既に終わってるやん



329 名前:nobodyさん mailto:sage [2014/04/27(日) 21:32:10.25 ID:???]
fuelは結局始まらなかったなぁ

330 名前:nobodyさん mailto:sage [2014/04/27(日) 21:46:02.47 ID:???]
>>324
herokuのおかげかrailsはPostgreSQL対応が盛んだからな

331 名前:nobodyさん [2014/04/27(日) 23:09:38.66 ID:9dL9KMPJ]
少し変化あったけど
結局またMySQLだよな

332 名前:nobodyさん mailto:sage [2014/04/28(月) 00:46:19.25 ID:???]
日本は逆にRailsかCakeのどっちかになってる気がする
ま、CakeもRailsのパクリなんであれだが

333 名前:nobodyさん [2014/04/29(火) 10:06:00.47 ID:uHAmZpKN]
脆弱性の緊急パッチが出てるんで
業務で使っている人は早めに当てておけよー。
1.3.x と 2.4.x 両方。

334 名前:nobodyさん mailto:sage [2014/04/29(火) 10:12:45.43 ID:???]
まじか、と思って見に行ったら
公式からしてやられてしまったのか?w
cakephp.org/
502 Bad Gateway

335 名前:nobodyさん [2014/04/29(火) 10:46:44.84 ID:uHAmZpKN]
公式復旧したっぽいね。
ちなみにこの脆弱性報告したのは実は俺。

336 名前:nobodyさん mailto:sage [2014/04/29(火) 11:06:47.62 ID:???]
前から気付いてたので、フォーム改ざん検知使ってなかった。

337 名前:nobodyさん mailto:sage [2014/04/29(火) 11:19:04.21 ID:???]
英語読めないんだけど、今回は何が問題なの?

338 名前:336 mailto:sage [2014/04/29(火) 11:26:35.82 ID:???]
家出ちゃったんで確認できないんだけど、今回の修正、別アクションにpostするときでも大丈夫?



339 名前:nobodyさん mailto:sage [2014/04/29(火) 11:32:28.27 ID:???]
>>335
クリタタカシさんありがとうございます

340 名前:nobodyさん [2014/04/29(火) 11:35:24.45 ID:uHAmZpKN]
>>337
SecurityComponent のフォーム改竄防止機能に穴があった。
作りにもよるけど hidden で受け取る id とかを改竄されると、任意のレコードを更新可能。

Model::save() を呼ぶ時に第一引数の $data に更新したいデータだけを渡すか
第三引数の $fieldList を明示的に指定するかしてれば平気。

>>338
別のアクションでも平気。
FormHelper が作る action をセキュリティトークンに入れてるから。
ただ、JavaScript で動的に action を変更している場合はブラックホールに飲まれるかと。

341 名前:nobodyさん [2014/04/29(火) 11:38:39.55 ID:uHAmZpKN]
>>339
どういたしまして

342 名前:nobodyさん mailto:sage [2014/04/29(火) 11:44:15.83 ID:???]
CakeのSecurityComponentっていっぱい穴ありそう
俺が触ってたのは1.3の頃だけど使いたくないと思った

343 名前:nobodyさん mailto:sage [2014/04/29(火) 11:46:59.01 ID:???]
すげえ

344 名前:336 mailto:sage [2014/04/29(火) 11:48:47.49 ID:???]
>>340
ありがとう。これで自作form改竄対策から離れられる。

345 名前:nobodyさん mailto:sage [2014/04/29(火) 16:06:25.97 ID:???]
セキュリティトークンどころかformまで今まで自作してたけど
Cake純正のもの使った方が楽なんかな

346 名前:nobodyさん mailto:sage [2014/04/29(火) 17:12:05.84 ID:???]
おまえなんでCakePHP使ってんの?

347 名前:nobodyさん mailto:sage [2014/04/29(火) 19:09:18.76 ID:???]
昔はもうちょっと使ってる人多かったんだよ
それでメジャーなのかなぁと思って、手を出した
結構色々これで作っちゃったから、以後ずるずる

348 名前:nobodyさん mailto:sage [2014/04/29(火) 20:08:51.90 ID:???]
確実に昔よりは使っている人が多いと思うよ



349 名前:nobodyさん mailto:sage [2014/04/29(火) 22:33:23.36 ID:???]
少なくとも俺の観測範囲では減っているな

350 名前:nobodyさん mailto:sage [2014/04/30(水) 08:44:08.14 ID:???]
ワンオフ型が減り、量産型が増えたから
環境によっては増えたと思い、環境によっては減ったと思う

351 名前:nobodyさん mailto:sage [2014/04/30(水) 13:45:58.87 ID:???]
また、アップデートかw

352 名前:nobodyさん mailto:sage [2014/04/30(水) 15:08:14.56 ID:???]
う、本当だ

353 名前:nobodyさん mailto:sage [2014/05/01(木) 00:53:29.70 ID:???]
なんでもかんでもhappy to announce ってバカみたいだな

354 名前:nobodyさん mailto:sage [2014/05/01(木) 02:19:18.51 ID:???]
まぁ、決まり文句だからしゃーないけど、
文言考えるの面倒くさいんだろうな

355 名前:nobodyさん mailto:sage [2014/05/02(金) 00:08:32.26 ID:???]
>> 340

これ本当?diffをちょっとみただけだけど、post先のURLを改竄されても通ってたのが、通らなくなってよりセキュアだねってだけで、hiddenの改ざん検知とか関係なくない?

356 名前:nobodyさん mailto:sage [2014/05/02(金) 00:25:59.26 ID:???]
嘘だったらこめん。明日よくみてみる。

357 名前:340 mailto:sage [2014/05/02(金) 00:35:18.90 ID:???]
>>355
本当だよ。
俺が Mark Story 氏に実際の攻撃手順を書いて送ったのが26日。
アップデートが 2.5.0-RC2 に脆弱性のアナウンスなしで反映されたのが27日。
1.3.18 と 2.4.8 にアナウンスありで反映されたのが29日。
かなり深刻な脆弱性だったからこういう日程になったんだけど、
結果的にはミスがあって 2.4.9 が出ることになった。

必ず攻撃が成功するかはサイトの作り次第だけれど、
仕事で使ってるならアップデートした方がいいよ。

358 名前:nobodyさん mailto:sage [2014/05/02(金) 00:43:14.81 ID:???]
>>356
今回の問題は、field改ざん検知のハッシュ値が、別のurlでも使えてしまう問題。

例えばForm->textでfield1,filed2を生成しPOSTされた値を保存するaction1、
Form->textでfield1のみ生成しPOSTされた値を保存するaction2があるとする。

action2でform改ざんを行って手動でfield2を追加しPOSTする場合を考える。

一緒にPOSTされるhash値の不一致でエラーとなるのが本来の仕様。
ただし以前のバージョンだと、form改ざんと併せてhash値をaction1のものを引用すると、
エラーにならずにfiled2を上書きできてしまう。

今回の修正で他のアクションのhash値を引用することができなくなり、本来の仕様を
回避する穴がふさがった。

ちなみにhiddenの改ざんの話は、どういう意図で言ったのか俺もよく関連はわからん。



359 名前:nobodyさん mailto:sage [2014/05/02(金) 00:55:27.39 ID:???]
>>355だけど、すまん。意味分かったかも。リリースノート読飛ばしてコミットログしかみてなかった。actionを改ざんすることでSecurtyComponentが丸ごと迂回されるのでhiddenも改ざんできるのね。いや、ソースみてないんでこれも嘘かもしれないけどw

360 名前:340 mailto:sage [2014/05/02(金) 00:58:57.58 ID:???]
>>359
そういうこと。

361 名前:nobodyさん mailto:sage [2014/05/02(金) 15:48:57.61 ID:???]
パンくずリストを作成するHTMLヘルパーって扱いが難しいよね
階層が増えるとビューに余計なコードを書く機会が増える
だからコントローラと独自ヘルパーで何とかしているけど、
手間がかかって仕方がない。

362 名前:nobodyさん mailto:sage [2014/05/02(金) 18:24:19.36 ID:???]
cookbookの例にあるようにTreeビヘイビアを使ってLI リストを表示したいのですが、
ビューで表示するときはヘルパーか何か作らないといけないのでしょうか?
以下のようにしたいのですが、generateTreeListでは無理です。

・My Categories
 ・Fun
  ・Sport
   ・Surfing

363 名前:nobodyさん mailto:sage [2014/05/02(金) 19:10:49.13 ID:???]
>>362
Treeビヘイビアは不要

Model::find('threaded');
か、
Model::find('all');
したでーたを Hash::nest() で入れ子にする。

364 名前:nobodyさん mailto:sage [2014/05/02(金) 20:12:03.57 ID:???]
>>363
すみません、そういう事ではなくて、ビューでの表示です。
ビューで>>362みたいなリスト化して出力するには、
独自のヘルパーを作らなければいけないのか?
他に方法があれば教えてくださいっと言った質問になります。

365 名前:nobodyさん mailto:sage [2014/05/02(金) 20:40:21.50 ID:???]
無いよ。

なんでかって言うと、再帰処理したら簡単に表現できるからなぁ。

で、再帰処理するためには入れ子構造に組み直す必要があって、
そのためには >>363 に書いた通りって意味なんだが?

366 名前:nobodyさん mailto:sage [2014/05/02(金) 20:42:16.77 ID:???]
とりあえず $Hoge->find('threaded'); で取得したデータをダンプするなりして
よく考えてみ。

367 名前:nobodyさん mailto:sage [2014/05/02(金) 21:05:59.69 ID:???]
HtmlHelper::nestedList() ではだめなの?

368 名前:367 mailto:sage [2014/05/02(金) 21:46:37.32 ID:???]
ごめん。
HtmlHelper::nestedList() に渡すには TreeBehavior だと自力で整形しないと駄目なんだね。
CakeDC の Utils プラグインにある TreeHelper::generate() なら >>362 の要求を満たせる。



369 名前:nobodyさん mailto:sage [2014/05/02(金) 21:48:33.85 ID:???]
>>367
HtmlHelper::nestedList() に渡すには
単純な入れ子構造にしておかないとだめ。

Model::find('threaded'); で取得したのはそのまま使えないと思う。

いったん Model::find('all'); で取得したデータを
Hash::extract() で階層を浅くして、それを
Hash::nest(); を使って組み直すなどの手間を掛けないと使えないんじゃないかな。

370 名前:nobodyさん mailto:sage [2014/05/02(金) 21:49:26.87 ID:???]
あ、かぶった。すまん。

TreeHelper なんてあるの知らなかった。
一度見てみるわ。






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

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

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