1 名前:nobodyさん [2008/12/19(金) 15:52:19 ID:ylogT+7c] ■本家 www.cakephp.org/ APIドキュメント api.cakephp.org/ cookbook(マニュアル) book.cakephp.org/ja the Bakery bakery.cakephp.org/ ■日本語フォーラム cakephp.jp/ ■過去スレ 【PHP】フレームワーク CakePHP 4ホール目【v1.2】 pc11.2ch.net/test/read.cgi/php/1213892680/ 【PHP】フレームワーク CakePHP 3ホール目【本命】 pc11.2ch.net/test/read.cgi/php/1205475360/ 【PHP】フレームワーク CakePHP 2ホール目 pc11.2ch.net/test/read.cgi/php/1194976228/ 【PHP】フレームワーク CakePHP pc11.2ch.net/test/read.cgi/php/1163850802/
474 名前:nobodyさん mailto:sage [2009/01/22(木) 01:10:40 ID:???] containでモデル指定すると親モデルと同じ階層に並ぶ形で出てくるけど 親モデルの奥に配置するにはどうすればいい? Model1->find('all',array( 'contain'=>array( 'Model2' )), 結果: array( [0]=>array( [Model1]=>array(), [Model2]=>array(), ) )
475 名前:nobodyさん mailto:sage [2009/01/22(木) 10:29:14 ID:???] decorte.phpのCakePHP1.2.1対応版はまだかな〜
476 名前:nobodyさん mailto:sage [2009/01/22(木) 12:48:42 ID:???] cakeのDB接続まわりを参考にしたいのですけど どのあたりのソースを見ればよいのでしょうか? /app/config/database.php.default に接続情報がありますが これらの情報を使用して接続している部分あたりを見たいです
477 名前:nobodyさん mailto:sage [2009/01/22(木) 12:53:15 ID:???] >>476 cake/libs/model/datasources cake/libs/model/datasources/dbo あたりかな
478 名前:nobodyさん mailto:sage [2009/01/22(木) 12:54:16 ID:???] /cake/libs/model 接続に言ってる所と言うのならその下のdatasources/dboの下
479 名前:nobodyさん mailto:sage [2009/01/22(木) 15:44:55 ID:???] CakePHP には、Railsでいうmigrationがないけど、 みんなはDBスキーマはどうやって管理してる? 前スレを見たら少し話題になってたけど、なんかgdgdに終わってた。
480 名前:nobodyさん mailto:sage [2009/01/23(金) 00:16:41 ID:???] CakePHPの1.2.0.7962でセキュリティコンポーネントを使って 二重投稿防止しようとしてるんだけど全然防止できない saveした後に明示的にセッションからトークン消してやればうまくいくんだけど、 皆様方そんなことをしている様子はないし www.1x1.jp/blog/2006/12/cakephp_csrf.html やってることはほぼこのまんま 1.2なんで$formでフォーム生成してるのが違うくらい フレームワーク使ってるってのに全然サクサク感がねぇー
481 名前:nobodyさん mailto:sage [2009/01/23(金) 02:23:23 ID:???] >>479 とりあえず、普通にSQLでやってる。 create_tables.sqlとか適当なファイルにcreate table文まとめてる。 で、Subversionで管理。 ほんとは、マイグレーションあると便利だけどね。 こんな感じの使い方ができるPHPスクリプトを作ればいいんだけど、 面倒だからやってない。でも、そのうちやるつもりw php rake.php db:migrate php rake.php db:migrate VERSION=3 php rake.php db:create php rake.php db:drop
482 名前:481 mailto:sage [2009/01/23(金) 02:38:24 ID:???] 今調べてみたら、1.2だと非公式だけどマイグレーションあるんだね。 知らなかったわ。 今度試してみよう。
483 名前:nobodyさん mailto:sage [2009/01/23(金) 04:06:53 ID:???] >>473 マニュアルのauthコンポーネントとACLのページを少ないから読んで見るといいかも 単純なログイン後とログインして無いとかならauthでいける
484 名前:nobodyさん [2009/01/23(金) 07:29:32 ID:YSArohX3] cakeのfindで、一番大きなidのデータを取得したり、 一番新しいcreatedのデータを取得したりとかって、簡単にできますか? やり方があれば、教えてください。
485 名前:484 mailto:sage [2009/01/23(金) 07:37:43 ID:???] sortして1番めを取得すれば良かったのか… >>484 自己解決で。素人ですみません。
486 名前:nobodyさん mailto:sage [2009/01/23(金) 10:46:31 ID:???] >>481-482 自分もこういうのを見つけていた。まあ「cakephp migration」でググっただけ だけど。 "CakePHP migration" フォーラム - CakePHP Users in Japan cakephp.jp/modules/newbb/viewtopic.php?topic_id=1176&forum=3 CakePHP のおいしい食べ方: DBマイグレーションか、DBスキーマシステムか cakephp.seesaa.net/article/97882341.html 誰か使っている人いないかな。
487 名前:nobodyさん mailto:sage [2009/01/23(金) 17:31:45 ID:???] >>484 sql の max 関数 調べてみい
488 名前:nobodyさん mailto:sage [2009/01/24(土) 16:41:32 ID:???] AuthComponent の認証をディレクトリ単位でわけるよい方法ってないでしょうか? /document_root/siteA/ 配下と /document_root/siteB/ 配下でわけたい。 siteA 配下は 教師モデルを対象に認証済みのユーザーはアクセス可能とし、 siteB 配下は 生徒モデルを対象認証済みのユーザーを対象にする。 当然、教師認証済みであってもは siteB にはアクセスできず、生徒は認証済みであっても siteA にはアクセスできない みたいな事がやりたいんですが。。。
489 名前:nobodyさん mailto:sage [2009/01/24(土) 16:51:08 ID:???] acl
490 名前:488 mailto:sage [2009/01/24(土) 17:14:12 ID:???] acl は、同一ユーザーテーブルの中での権限の割り当てではないでしょうか? がんばって読んでみたんですが、そもそもユーザー認証を行なうモデルが異なる場合は 対応できないように思いました。 今回は、教師と生徒で登録されているテーブルが違うのでログインページも教師用と生徒用があります。 教師は siteA/login.php にて。生徒は siteB/login.php にて認証します。 で、教師でログインした場合は siteA 配下のみアクセス可能。生徒でログインした場合は siteB のみ アクセス可能としたい。 かっこ悪いすが、サブドメインきって cake そのものを2通り用意したほうが簡単かもしれないと思ってしまいました。 何かよい方法があればいいな、と。
491 名前:nobodyさん mailto:sage [2009/01/24(土) 22:19:27 ID:???] もっと嫁
492 名前:nobodyさん mailto:sage [2009/01/24(土) 22:20:11 ID:???] cake2個用意するとか前にも言ってるやつが居たが プログラマーのやり方じゃない
493 名前:nobodyさん mailto:sage [2009/01/24(土) 22:44:47 ID:???] cakeはもっとサンプルが公開されてると、こうした初心者の人も助かりそうだね。 初心者がcakeのソースなんて追え無いんだから。
494 名前:nobodyさん mailto:sage [2009/01/24(土) 22:58:31 ID:???] つーか公式マニュアルにAROとACOの説明があるのに >>490 の理解になるのはおかしい ちゃんと読んでない
495 名前:nobodyさん mailto:sage [2009/01/25(日) 11:58:58 ID:???] アクションが増えるとコントローラーの行数も増えるのたが、 お前らのコントローラーの行数は最大でどの位ですか。
496 名前:nobodyさん mailto:sage [2009/01/25(日) 12:03:41 ID:???] アクションの数自体、1コントローラ最大で10くらいしか経験無いわ
497 名前:nobodyさん mailto:sage [2009/01/25(日) 19:50:45 ID:???] 「CakePHPポケットリファレンス」の資料に載ってる CakePHPの命名規則って、かなりでたらめ?
498 名前:nobodyさん mailto:sage [2009/01/25(日) 21:22:02 ID:???] 一つの関数(アクション)の行数を短くしろとは聞くが 一つのクラス(コントローラー)の行数を短くしろとは あまり聞かない。
499 名前:nobodyさん mailto:sage [2009/01/25(日) 23:34:20 ID:???] >>497 「CakePHPポケットリファレンス」の命名規約(p.406-408)で 「これ、おかしんじゃない」のワースト3を教えて。 ttp://book.cakephp.org/ja/complete/22/CakePHPの規約
500 名前:nobodyさん mailto:sage [2009/01/25(日) 23:37:01 ID:???] 俺も手元の開いてみた なんか楽しいw
501 名前:nobodyさん mailto:sage [2009/01/26(月) 00:04:38 ID:???] えーっと、どれも酷いので順番は付けられないけど コントローラーの命名規則 英単語の単数形+"Controller" って書いてるのに、例が PowerUsersController モデル名+"_id"って書いてるのに、例がpower_users_id あとある?
502 名前:nobodyさん mailto:sage [2009/01/26(月) 01:11:31 ID:???] ホントだ。あるねえ。 コントローラの命名規約 ○クラス名 英単語の複数形+"Controller" PowerUsersController テーブルとカラムの命名規約 ○外部キー モデル名+"_id" power_user_id、article_id (モデル名は単数形だよね。) 修正しました。
503 名前:nobodyさん mailto:sage [2009/01/26(月) 10:35:54 ID:???] 編集フォームの初期値をセットするには $form->create('User'); で作っていたとしたらどういう変数名・配列構造でセットすればいいの?
504 名前:nobodyさん mailto:sage [2009/01/26(月) 10:52:09 ID:???] >>503 $this->data['User']['name'] = '麻生太郎';
505 名前:nobodyさん [2009/01/26(月) 12:24:49 ID:j8WtT0GU] 1.2系のAuthComponentにおいて任意のidでユーザ認証されてしまう、という脆弱性が。 1.2.1.8004へアップデート推奨らしいぞ。 cakephp.jp/modules/newbb/viewtopic.php?topic_id=1696&forum=1&post_id=4032#forumpost4032 www.pseudocoder.com/archives/2009/01/22/cakephp-digest-6/
506 名前:nobodyさん mailto:sage [2009/01/26(月) 13:21:32 ID:???] AuthComponentをStableから使い始めた俺は勝ち組w
507 名前:nobodyさん mailto:sage [2009/01/26(月) 13:41:36 ID:???] >>505 ワロタw どこがAuthなんだよ
508 名前:nobodyさん [2009/01/26(月) 16:40:15 ID:j8WtT0GU] これってやばいんだよね?
509 名前:nobodyさん mailto:sage [2009/01/26(月) 20:39:14 ID:???] testsuiteって使ってる? マニュアル見ても、よく分からん。
510 名前:nobodyさん mailto:sage [2009/01/26(月) 22:55:14 ID:???] >>508 機能として破綻してるw
511 名前:nobodyさん mailto:sage [2009/01/26(月) 23:57:03 ID:???] ああー よくわからんままやったら、 フィールド消えたわ まじか、これ
512 名前:nobodyさん mailto:sage [2009/01/27(火) 10:11:27 ID:???] バグが取れるまでstableにしませんとか誇らしげに語ってなかったっけ?w
513 名前:nobodyさん mailto:sage [2009/01/27(火) 11:51:11 ID:???] >511はtestsuiteの話しな testsuiteの解説がガイドブックとかに無いし、 web上にもあんまり情報が無いので、よくわからん。 でも。simpletestをインスコしたら、bakeの際に いろいろ聞かれなくなったのは楽だな。
514 名前:nobodyさん mailto:sage [2009/01/27(火) 12:20:04 ID:???] 1.2.1.8004 Stable ですが 設置 URL が example.jp/t/ の時、tests というコントローラにアクセスしようと、 example.jp/t/tests/ ってやると、example.jp/t/ests/ に勝手になってしまって Error: EstsController could not be found. となります。 t に限らず webrootが1文字で とコントローラの最初の一文字が同じだと 上記のようになると思いますが、何か注意するところはありますか?
515 名前:nobodyさん mailto:sage [2009/01/27(火) 12:32:20 ID:???] >>514 cakephp.jp/modules/newbb/viewtopic.php?topic_id=1706&forum=6&post_id=4025#forumpost4025 これと同じかな
516 名前:nobodyさん [2009/01/28(水) 11:36:58 ID:AHb2WVE2] 既存テーブル名が日本語で、cakeが認識しません。 どうすればいいのでしょうか? php直ですと日本語テーブル名でクエリは通ります。
517 名前:nobodyさん mailto:sage [2009/01/28(水) 12:33:02 ID:???] cake周りの文字コードをutf-8にしたら とりあえず、認識した。
518 名前:nobodyさん mailto:sage [2009/01/28(水) 18:06:35 ID:???] テーブル名が日本語ってトラブルの元じゃない? って、以前言われた。 testって、データを入れて出して一致してるか確認してるんだって事が ようやく少し分かった。
519 名前:nobodyさん mailto:sage [2009/01/28(水) 18:29:34 ID:???] テーブルとかカラムが全角文字だと激怒する奴いるけど 別に日本で使うシステムなら問題ないんだけどな Oracle/Access+VBのシステムなんかよくあるし PHPだって変数名ですら全角文字でもOKなんだし
520 名前:nobodyさん mailto:sage [2009/01/28(水) 19:00:41 ID:???] >>519 全角って、そんなに変じゃないの? bakeする時に日本語で全部作ってくれると楽そうだなーって思ってた。 多言語化を考える必要なんて全くない物を作るのにi18nすら面倒で、 ソースに日本語のエラーメッセージを書いてやろうと思ってた。
521 名前:nobodyさん mailto:sage [2009/01/28(水) 19:02:34 ID:???] あ。でも、そうすると複数形ってどうすんだ?
522 名前:nobodyさん mailto:sage [2009/01/28(水) 19:04:55 ID:???] DB関連の開発系ツールも含めて全て対応出来てるんならいいんだろうけど 海外製のライブラリは対応出来てないものが多いし 結局、全角ゴリ押しは開発者側に負担を強いることが多いよ プロジェクト内で使う環境を全部調査して、誰にも迷惑かけないと判明したら使えばいいと思うけど
523 名前:nobodyさん mailto:sage [2009/01/28(水) 19:05:44 ID:???] >>521 個別テーブル名定義で対応するしかないと思う やったことないし試そうとも思わないから詳しくは知らない
524 名前:nobodyさん mailto:sage [2009/01/28(水) 20:22:20 ID:???] 早速、日本語名utf8のテーブルやフィールドを作って、 cake bake allしてみた。 コンソールは微妙に文字化けしてたけど、難なく焼けた。 でも、アクセスしたらエラーが出た。ファイルを見たら、 ファイルがshift jisで認識されて、日本語部分は全部文字化け。 こんなことで苦労したくないので、これ以上は試すの止める。
525 名前:nobodyさん mailto:sage [2009/01/29(木) 05:37:51 ID:???] CakePHPは使ったことがありませんが、非常に興味があり質問させて いただきます。 今まで自作の簡易フレームワークで業務アプリを作ってきました。 画面数は数十あります。 表示はSmartyを使っています。 これを少しづつCakePHPに置き換えたいと考えていますが、 フレームワークを変更するとかなり大掛かりな作業になりそう ですし、部分的に置き換えていくのが実際できるのかわかりません。 CakePHPは、上述のように既存のWebアプリを部分的に置き換えていける ものなのでしょうか? それとも、新規Webアプリから採用するべきものなのでしょうか?
526 名前:nobodyさん mailto:sage [2009/01/29(木) 11:43:51 ID:???] >>525 新規案件だけにしたほうが苦労が少なくていいと思う
527 名前:nobodyさん mailto:sage [2009/01/29(木) 11:51:59 ID:???] >>525 思いついたところから書くと 最低クリアされるべき条件 ・DBの構造(idとか) ・URL(/controller/action/param.. の形式) がクリアされないといけない そのうえで、Modelごと(≒tableごと)移行していくというのであれば、不可能ではないと思うが。 現実的には、DBを共通化して、Cakeによるサイトを作っていき、同時に稼働させてテストし、一気にリプレイスってことになりそうな気がするけど、どうなんだろうね。 ただ、Cakeに慣れるまである程度時間がかかるから、いずれにせよ新規アプリから始めないと、苦労すると思うよ。
528 名前:525 mailto:sage [2009/01/30(金) 06:58:44 ID:???] >>526 , 527 レスありがとうございました。 やはり新規案件からCakePHPをはじめたほうが無難ですね。 スキルを醸成してから、既存システムの変更を検討します。
529 名前:nobodyさん mailto:sage [2009/01/30(金) 11:51:03 ID:???] 自作クラスのインスタンスを得るにはどうすればいいの? データを引数に持たせてインスタンス同士をいろいろ比較してくれるクラスを 昔作ったんだけどどう持ち込めばいいのかわからない
530 名前:nobodyさん mailto:sage [2009/01/30(金) 17:53:58 ID:???] ポケットリファレンスを見てるんだが。 1.2になってModel::findが大幅に機能強化されたのに、 記述が少なすぎる。もしくは、Model::generateList() のページに代わりの方法が書いてあればいいが、 Model::find()だけでは意味不明だろう。
531 名前:nobodyさん mailto:sage [2009/01/30(金) 18:27:52 ID:???] >>530 おとなしく改訂版を待ってろ
532 名前:nobodyさん mailto:sage [2009/01/30(金) 18:55:05 ID:???] 改訂版って出るの?
533 名前:nobodyさん mailto:sage [2009/01/30(金) 19:21:00 ID:???] コントローラから2つのモデルとデータをやり取りする場合、 アソシエーションを使う方がいいのか、 Controller::usesで直接指定する方がいいのか。
534 名前:nobodyさん mailto:sage [2009/01/30(金) 19:29:43 ID:???] アソシエーション使うと結果変わる事ない? たぶん親モデルと関連してるレコードしか該当しないよ
535 名前:nobodyさん mailto:sage [2009/01/30(金) 23:31:39 ID:???] コントローラからコントローラへデータを渡すのって、どうするの?
536 名前:nobodyさん [2009/01/31(土) 01:44:15 ID:ZNZRtHpp] flash
537 名前:nobodyさん mailto:sage [2009/01/31(土) 04:27:13 ID:???] >>536 なるほど。 urlでパラメータを渡すなら、redirectでも良さそう。 でも、urlだと大きなデータは渡せないよね。 データが丸見えになるし。 あと、同じウィンドウの中でのみ渡すってなると、 どんな方法が良さそう?
538 名前:nobodyさん mailto:sage [2009/01/31(土) 04:30:59 ID:???] >>537 まあなんだ。 ウェブアプリはデスクトップアプリと 考え方が違うが・・・ まあ、がんばれや。
539 名前:nobodyさん mailto:sage [2009/01/31(土) 05:48:56 ID:???] Session->renew()で新しいsession_idを割り振れば いけるかな?と思ったが、甘かった。同じブラウザでは renewする前のが消える。 別のブラウザなら大丈夫だった。(当たり前か)
540 名前:nobodyさん mailto:sage [2009/01/31(土) 08:38:22 ID:???] 解決。セッションの使い方を間違ってる。 ユニークキーの発行が正しい。
541 名前:nobodyさん mailto:sage [2009/01/31(土) 09:18:36 ID:???] Cakeユーザーの低レベルさが泣けてくる
542 名前:nobodyさん mailto:sage [2009/01/31(土) 09:28:15 ID:???] >>541 今CakePHPが注目を集めている為、素人が「PHPフレームワークなら俺にも何か簡単に Webアプリが作れるかな。」という気になっているじゃない? 見方を変えるとCakePHPの功績は大きいかも?
543 名前:nobodyさん mailto:sage [2009/01/31(土) 09:38:59 ID:???] にしてもプログラマーと呼べないレベルの質問が多すぎる
544 名前:nobodyさん mailto:sage [2009/01/31(土) 09:47:48 ID:???] そろそろsymfonyの時代か・・・?
545 名前:nobodyさん mailto:sage [2009/01/31(土) 10:44:44 ID:???] それでも作れちゃうなら凄いこと
546 名前:nobodyさん mailto:sage [2009/01/31(土) 10:46:19 ID:???] そんなレベルの人が正しくフレームワークを使いこなせてるとは思えない 保守不可能なシステムを作ってそう
547 名前:nobodyさん mailto:sage [2009/01/31(土) 11:16:37 ID:???] Web屋と呼べないレベルではあるが exe屋だったら最初そんなもんだろ。 まあ、フレームワーク知識自慢しかできないようじゃ、 お前らすぐに抜かれるよ。
548 名前:nobodyさん mailto:sage [2009/01/31(土) 13:50:46 ID:???] >>529 自作クラスなんてコンポーネントにしちゃえばいいよ。 で、コントローラーで $this->Myclass->eat('hoge'); で。 >>535 作り方としてデータを渡したいような内容のものがあるならモデルに書いた方がいい。 で、コントローラーからそのモデルのアクションを読み出してデータを取得。
549 名前:nobodyさん [2009/01/31(土) 16:13:14 ID:x6QrlarV] authcompornentでユーザ登録した後、自動的にログイン状態に遷移する処理について なにか方法があれば教えていただけませんでしょうか?
550 名前:nobodyさん mailto:sage [2009/01/31(土) 16:23:21 ID:???] マニュアルを読め
551 名前:nobodyさん mailto:sage [2009/01/31(土) 17:40:26 ID:???] データが全然こなくて小一時間悩んでたけどconditionsて書く所がconditonsになってた〜 時間返せー
552 名前:nobodyさん mailto:sage [2009/01/31(土) 17:50:06 ID:???] 色々読んでみたが、結局趣味でやるぶんにはイイFWってことか
553 名前:nobodyさん mailto:sage [2009/01/31(土) 18:44:40 ID:???] >>551 あるあるwwww JavaScriptでもundefinedとunidentifiedをよく間違えるんだよな
554 名前:nobodyさん mailto:sage [2009/01/31(土) 18:55:23 ID:???] 配列仕様だからそういうミスしても分からないんだよね なにかあるたびに配列にミスが無いかチェックしてるわ
555 名前:nobodyさん mailto:sage [2009/01/31(土) 19:10:10 ID:???] よく使うやつはテキストエディタの強調表示設定に入れておくのが吉
556 名前:nobodyさん mailto:sage [2009/01/31(土) 19:38:57 ID:???] symfonyを採用したオープンソースのSNS OpenPNE3.0が1/27にリリースされたそうな。 ttp://www.openpne.jp/archives/1117/ と言う事は、OpenPNE3.0はPHP4のサーバにはインストール出来ないと言うことか? 多くのアプリがPHP4で開発されたもので、PHP5での稼働が保証されていないので、 サーバのPHPを5に出来ないんだよな。
557 名前:nobodyさん mailto:sage [2009/01/31(土) 21:24:40 ID:???] >>548 モデルAとモデルBで、一応形としては A hasMany B B blongTo A なんだけど、普段必要になるのは、Bのうちnot deleteのフラグが立ってる 1つのデータだけなのよ。そして、まれに(not delete関係なく)全ての データが必要になる。これをどう扱ったら良い? A hasOne B にしても、BにA_idというフィールドが必要なだけに、こちらが望む 通りに紐付けするには条件(not delete=true)が足りない気がするし、 SQLの実行に時間や負担がかからないか心配だし、汎用性がどうか? Bのデータをidで直接呼び出した方が早いような気がしたので・・・ Aに、not deleteに当るBのデータのidを入れるフィールドを作っていて、 AのコントローラでBのモデルも扱ってread(Bのid)ってするつもりだった。 だけど、このやり方って変?
558 名前:nobodyさん mailto:sage [2009/01/31(土) 21:53:45 ID:???] >>557 ゆとりなの?死ぬの? こんな風に A のモデル書いて class A extends AppModel { var $hasMany = array('B' => array( 'className' => 'B', 'conditions' => array('B.delete' = 'not delete'), ),); function hogehoge() { unset($this->hasMany['B']['conditions']['B.delete']); return $this->find('all'); } } で、普段はコントローラから $this->A->find() でデータ取得して、 B.delete を無視する時は $this->A->hogehoge() 使うようにするだろう。jk
559 名前:nobodyさん mailto:sage [2009/01/31(土) 23:42:40 ID:???] コントローラーから別のコントローラーに値を渡す方法と言われて、セッションとかそういう話じゃなかったことしかないな
560 名前:nobodyさん mailto:sage [2009/02/01(日) 01:12:20 ID:???] 質問です。 $data = array( array( 'User' => array('id' => 1, 'name' => 'suzuki'), 'Tag' => array( array('id' => 1, 'title' => 'hoge'), array('id' => 2, 'name' => 'fuga') ), ), array( 'User' => array('id' => 2, 'name' => 'sato'), 'Tag' => array( array('id' => 1, 'name' => 'piyo'), array('id' => 3, 'name' => 'moge') ) ) ); $result = Set::extract('/Tag[id=1]/..', $data); debug($result); このとき$resultには、結果的に$dataと同じデータが入ると思うんですが、 「Notice (8): Undefined offset: 1 [CORE/cake/libs/set.php, line 415]」 というエラーが出て、2つめのデータが表示されません。何が原因なのでしょうか?
561 名前:560 mailto:sage [2009/02/01(日) 01:26:07 ID:???] すみません、追記です。 PHPのバージョンは5.2.8、CakePHPのバージョンは1.2.1.8004です。 あと「array('id' => 1, 'name' => 'piyo'),」は、 「array('id' => 1, 'title' => 'hoge'),」とした方が自然ですね。 よろしくお願いします。
562 名前:nobodyさん mailto:sage [2009/02/01(日) 22:33:35 ID:???] >>560 よくわからんけど。 Tagの添字のID=1が二つあるからじゃね? それ以外の条件での検索については、エラーは出ないし。
563 名前:nobodyさん mailto:sage [2009/02/01(日) 22:46:30 ID:???] ちょっと複雑?なアソシエーションについて教えて。 基本は A hasMany B , B belongTo A なんだけど、 AとBは hasAndBelongToMany でもある。 (Aが担当教員で、Bが生徒と思えば。 Aの中に担任が一人居るような感じ。) belongTo のAと、hasAndBelongToManyのAsを どうやって取得し分けたらいい?
564 名前:nobodyさん mailto:sage [2009/02/02(月) 01:23:57 ID:???] >>563 アソシエーションのbindとunbindを使い分ければいいんじゃない?
565 名前:nobodyさん [2009/02/02(月) 05:46:05 ID:lBmCzdKa] 1.2でpaginatorを1画面に複数使う方法が書いてあった blog、どこにあったか知ってるひといたら教えてプリーズ あとで見ようとしててどっかにいってしまいました
566 名前:563 mailto:sage [2009/02/02(月) 15:51:42 ID:???] >>564 一方を取得したくない時には、それでいけそうです。ありがとう。 だけど逆に、両方取得したい時に困りました。 当たり前かもしれませんが、両方が同じ変数に混ざってしまいます。 [B] => Array ( [id] => 1 [name] => hoge [0] => Array ( [id] => 1 [name] => hoge [AsB] => Array ( [id] => 4 [A_id] => 1 [B_id] => 1 ) ) ) これ、どうやって分離する? もしくは、別々の変数でとり出す方法は? それとも、そもそもデータベースの設計がおかしい?
567 名前:nobodyさん mailto:sage [2009/02/02(月) 16:28:39 ID:???] >>566 良くのみこめてないけど、tableに問題がありそうなきがする teachers , students があるのかな? classes があればすべて解決するような気がするけど違うのかい?
568 名前:563 mailto:sage [2009/02/02(月) 19:05:21 ID:???] Authも兼ねるつもりなので、 A hasMany B のAはusersなのです。 だからgroupsも作ってあるけど、classesやgroupsのいずれでも B blongsTo〜の関係にならないのです。
569 名前:nobodyさん mailto:sage [2009/02/02(月) 19:06:34 ID:???] www.google.co.jp/trends?q=cakephp%2Cruby+on+rails&ctab=0&geo=all&geor=all&date=all&sort=0 逆転しそう
570 名前:nobodyさん mailto:sage [2009/02/02(月) 19:55:59 ID:???] >>568 いやいやそういうこっちゃないでしょ もっと具体的に書いてみたらどうよ。 「A hasMany B , B belongTo A なんだけど、 AとBは hasAndBelongToMany でもある」って言われてもねえ 関係するModelと、そこで使われているアソシエーションの内容を、具体的にたのむ
571 名前:nobodyさん mailto:sage [2009/02/02(月) 20:48:11 ID:???] >>569 これってGoogleでの検索件数のトレンドグラフだよねえ。 CakePHPは色々と問題が多くて、その解決法を探す為にみんなせってと「CakePHP」 キーワードで検索をしている。だから最近検索件数がウナギ登りなんだ。 と言う見方もあるのかなあ?世間の注目を集める為のCakePHPの戦略では?
572 名前:nobodyさん mailto:sage [2009/02/02(月) 21:19:08 ID:???] >>566 必要なデータを得られるfindをして、自前で工夫すればいいんじゃないかな
573 名前:563 mailto:sage [2009/02/02(月) 21:22:19 ID:???] usersテーブル id name personsテーブル id name user_id //これが主たるuser persons_usersテーブル id person_id user_id //その他のuser Userモデル var $hasMany = array('Person' => array('className' => 'Person', 'foreignKey' => 'user_id')); Personモデル var $belongsTo = array('User' => array('className' => 'User', 'foreignKey' => 'user_id')); var $hasAndBelongsToMany = array('User' => array('className' => 'User', 'joinTable' => 'persons_users', 'foreignKey' => 'person_id', 'associationForeignKey' => 'user_id', 'unique' => true));
574 名前:563 mailto:sage [2009/02/02(月) 21:23:10 ID:???] Personsコントローラ class PersonsController extends AppController { function view($id = null) { $this->set('person', $this->Person->read(null, $id)); debug($this->Person->read(null, $id)); } } すると、$person['User']に、>566みたいに、belognsToとhasAndBelongsToManyの 両方のデータが入ってしまう。 ['User'][id] ['User'][name]とかは、blongsToのデータ ['User'][0][id] ['User'][0][name]とかはhasAndBelongsToManyのデータだと思う。