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/
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のデータだと思う。
575 名前:nobodyさん mailto:sage [2009/02/02(月) 22:34:43 ID:???] var $hasMany = array('Profile1' => array('className' => 'Profile', 'foreignKey' => 'user_id', ), 'Profile2' => array('className' => 'Profile', 'foreignKey' => 'user_id', ) );
576 名前:563 mailto:sage [2009/02/02(月) 22:56:48 ID:???] >>575 それだ!!うまくいきました!多謝多謝
577 名前:nobodyさん mailto:sage [2009/02/03(火) 09:54:32 ID:???] モデル間のデータのやり取りや、 一つのモデルで複数のフィールドの データを操作するのって、どうやるの? というか、そういうのは奨められない? あるフィールドにデータが書き込まれたら、 同時に別のフィールドにもデータを書き込みたい。 (DBの設計がそもそも冗長との批判は分かる。)
578 名前:nobodyさん mailto:sage [2009/02/03(火) 10:15:42 ID:???] >>577 afterSave , afterDelete
579 名前:nobodyさん mailto:sage [2009/02/04(水) 16:42:15 ID:???] セレクトメニューを作るために、find('list')で配列を取得して、 この配列の先頭に、例えば、 $sel[0]='ここから選んで'; みたいなのを追加するのって、どうする? array_unshiftだと、IDに当る数字が再割り付けされてしまう。
580 名前:nobodyさん mailto:sage [2009/02/04(水) 17:30:08 ID:???] formヘルパーのオプション指定にそういう機能が無いかと 配列に直にデータを入れてバリデーションと合わせて簡単にやれないかを検討する
581 名前:nobodyさん mailto:sage [2009/02/04(水) 18:18:31 ID:???] ポケットリファレンスだと、そもそも $form->input('sel_id') の説明が無いんだよなー。 $form->selectにもなさげ。 配列に直にデータ入れて、ksortでできたからいいか。
582 名前:nobodyさん mailto:sage [2009/02/04(水) 18:39:48 ID:???] >>581 え? $form->select()だと第5引数showEmptyに文字列指定 調べてないけどinputもいけるはず
583 名前:nobodyさん mailto:sage [2009/02/04(水) 19:26:25 ID:???] ほんとだ。出来た。 そうだよなー。素人の私でも、出来ないと不便だって思うもんなー。
584 名前:nobodyさん mailto:sage [2009/02/04(水) 23:27:52 ID:???] ポケットなんとかがどんなもんだか知らないけど、まずマニュアル見ましょうよ。 せっかくCakeは日本語ドキュメントが充実してるんだから。
585 名前:nobodyさん mailto:sage [2009/02/05(木) 00:17:23 ID:???] うむ・・・おっしゃる通り。結局、Webの日本語マニュアルが一番参考になってる。 これだけでもCakePHPを選んで良かったと思う。 だけど、紙の本で探す方が早い事も多いし、狭い画面でやってるのでwebマニュアル を開いてる場所が無いのです。 ポケリファの1.2.1対応した改訂版が早く出て欲しい。できれば、Authとか1.2の 新機能をきっちり説明して欲しい。
586 名前:nobodyさん mailto:sage [2009/02/05(木) 00:26:39 ID:???] 1.2stable出たし、各社対応版発売を狙ってるでしょ 逆引き的なのは欲しいなぁ〜
587 名前:582 mailto:sage [2009/02/05(木) 09:29:26 ID:???] >>584 まずマニュアル見ようというのは同意だけど、マニュアルの記述がまだまだ不完全なのは事実 今回の件であれば select(string $fieldName, array $options, mixed $selected, array $attributes, boolean $showEmpty) 空の選択オプションを表示したくない場合、$showEmpty を false にします。 と、ある boolean の引数にテキストを指定するなんて、api.cakephp.org/ でソースを見るしかない (今回はポケットリファレンス見たというから、つっこんだまで)
588 名前:nobodyさん mailto:sage [2009/02/05(木) 09:35:20 ID:???] >>581 付け加えると、詰まったら api.cakephp.org/class/form-helper#method-FormHelperselect を見るのが、一番手っ取り早い こっちは、マニュアルよりは更新早いし、最終的にはソースを追えるし まあ、がんばってくれ
589 名前:nobodyさん mailto:sage [2009/02/05(木) 17:58:21 ID:???] findAll で フィールド price か item のどちらかにマッチするというクエリを書く場合って どうすればいいの?
590 名前:nobodyさん mailto:sage [2009/02/05(木) 18:28:27 ID:???] >>589 1.2だったら $this->MODELNAME->find('all', array( 'conditions'=>array( 'MODELNAME.price' => '2000', 'MODELNAME.item' => 'ITEM') ) ); こんな感じ
591 名前:nobodyさん mailto:sage [2009/02/05(木) 18:29:43 ID:???] >>590 ありがとう! その前にMYSQLが日本語ひっかからないという。。。 なんでだろ。 参考になりました。ありがとうございます。
592 名前:589 mailto:sage [2009/02/05(木) 18:34:16 ID:???] cakephp とは関係ないと思いますけど $option = array('Faqlist.name LIKE BINARY' => $str); ってBINARY ってのをつけると 日本語もうまくひっかかるようになります。 今まではちゃんとひっかかってたのに。MYSQLの仕様がかわったのかなー
593 名前:nobodyさん mailto:sage [2009/02/05(木) 18:52:42 ID:???] >>590 "or"とか入れなくても良いんでしたっけ?
594 名前:nobodyさん mailto:sage [2009/02/05(木) 18:55:11 ID:???] db側の文字コードがLatin1とかだとBinaryで処理するしかないってことだと思うけどね。
595 名前:nobodyさん mailto:sage [2009/02/06(金) 03:00:32 ID:???] Model::save()の際に、複製を残したいと思って、 idが空になれば新規保存されるのかな?と思って、 モデルに function beforeSave() { unset ($this->data[$this->name]['id']); return true; } と書いてみたが、UPDATEされてしまった。 かといって、 function beforeSave() { $d = $this->data; unset ($d[$this->name]['id']); $this->create(); $this->set($d); return true; } ってしたら、createdの日付が0になってしまった。 何か良い方法無い?
596 名前:nobodyさん [2009/02/06(金) 08:05:18 ID:OIEK7Rhk] 複製を残したいなら二回saveする必要があるんじゃねーか?
597 名前:nobodyさん mailto:sage [2009/02/06(金) 09:38:20 ID:???] >>595 どのように複製したいのだろうか? updateだろうがinsertだろうが、同じデータをinsertするということなら afterSaveで、create後saveすれば良いと思われ 別のDBに保存したいというのならuseDbConfigを変更してsaveかな? いずれにせよafterSaveじゃないと、validationErrorのときにもsaveされちゃうんじゃないかな
598 名前:nobodyさん mailto:sage [2009/02/06(金) 10:28:16 ID:???] >>596 ,597 複製って表現が違ったかもしれん。すまん 「バックアップを残す」って感じ。 既存のデータの編集の際、既存のデータは そのまま(削除のフラグを立てる)で、 新しいidで保存したい。 すると、afterSaveでは上書きされた後だから ダメでしょ? そこで、beforeSaveでidを 空にすれば新しいidで保存されるかなと思ったが、 なぜか上書きされてしまった(前者)。 コピーしたデータで書き込んだら、createの 情報が抜けてしまった(後者)。という次第であります。
599 名前:nobodyさん mailto:sage [2009/02/06(金) 10:42:52 ID:???] >>599 履歴を残すってことね。理解した。 でも、それでもafterSaveだろう 新規のデータをinsertして、afterSaveで既存のデータをupdateする感じじゃないかな book.cakephp.org/ja/view/76/ beforeSaveはあくまで保存するデータをいじったりするときに使うものだと思うよ ※>>597 のvalidationErrorのときにもsaveされるは間違いのようだ
600 名前:nobodyさん mailto:sage [2009/02/06(金) 10:53:08 ID:???] >>599 >新規のデータをinsertして、afterSaveで既存のデータをupdateする ↑ この処理はコントローラに書くことになるよね? どこかで、「ビジネスロジックはモデルに」なんて書いてあったので、 モデルに書く方法を考えてた。(コントローラからは普通にsaveしてる ように見えるけど、モデルの方でバックアップを残してる、って感じ) もしくは、モデルに上記の処理をするメソッドを作る方法もある? Model::save()を上書きしたら・・・さすがにややこしいことになるよな。
601 名前:nobodyさん mailto:sage [2009/02/06(金) 11:04:42 ID:???] >>600 afterSaveと言ってるくらいだから、Modelでしょーが おまいさんのいうように、自動的に履歴が残るぞ。 まずは、マニュアル読んでコールバックメソッドを理解するべし
602 名前:nobodyさん mailto:sage [2009/02/06(金) 11:08:14 ID:???] あ。そうか。ちょっと勉強して、試してみる。