- 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/
- 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:???]
- あ。そうか。ちょっと勉強して、試してみる。
- 603 名前:nobodyさん mailto:sage [2009/02/06(金) 11:16:38 ID:???]
- >>602 Have a nice cooking !
- 604 名前:nobodyさん mailto:sage [2009/02/06(金) 12:54:05 ID:???]
- >>601
「新規のデータをinsertして」もModel?? その後、afterSaveの中でgetIDできるのは 新しい方のデータで、既存のデータのidは 取得できないのでは?
- 605 名前:nobodyさん [2009/02/06(金) 12:58:50 ID:Fuxx6e9Y]
- バリデーションが効かない。助けて下さい。
モデルに追加するだけで動作するよね? var $validate = array( 'xxx' => array( 'rule' => VALID_NOT_EMPTY, 'message' => '必須項目です。' )
- 606 名前:nobodyさん mailto:sage [2009/02/06(金) 13:12:45 ID:???]
- >>604
それは、Controller 既存のidについては、自分で工夫してみてくれ。getIDする必要があるとは思えんから
- 607 名前:nobodyさん mailto:sage [2009/02/06(金) 13:51:55 ID:???]
- >>606
ありがとう。わかりました。 いくつかのモデルで同様の処理が有るので、 メソッド作って、AppModelに書いてみました。
- 608 名前:nobodyさん mailto:sage [2009/02/06(金) 14:27:27 ID:???]
- CakePHPってXSSとかSQLINJECTIONに対応してますか?
自分で処理するしかないですあk?
- 609 名前:nobodyさん mailto:sage [2009/02/06(金) 14:49:58 ID:???]
- 基本的に処理はされるが、知らずに穴を作ることはできるので、
自分で意識する必要はある。当然だが。
- 610 名前:nobodyさん mailto:sage [2009/02/06(金) 16:08:24 ID:???]
- >>608
XSSやSQLインジェクションの仕組みと対策方法を知っていれば、 おのずと分かる話だと思うが?
- 611 名前:nobodyさん mailto:sage [2009/02/06(金) 16:17:31 ID:???]
- Cakeのセキュリティ関係はあまり信用出来ないけど
- 612 名前:nobodyさん mailto:sage [2009/02/06(金) 16:32:25 ID:???]
- さすがにXSSについては、Helper使わない限りは、自分でh()に通すしかないわな
- 613 名前:nobodyさん mailto:sage [2009/02/06(金) 16:44:06 ID:???]
- Ajaxしてると見落とすこともあるかも。
- 614 名前:nobodyさん [2009/02/06(金) 22:15:58 ID:OIEK7Rhk]
- これってDBにロックかけることってできないの?
BEGINでトランザクション開始 SELECT FOR UPDATEで更新用データ取得と同時にロック UPDATEでデータ更新 COMMITでトランザクション終了 みたいな感じにしたいんだけど、SELECT FOR UPDATEって どうやって設定してやったらいいんだ?
- 615 名前:nobodyさん [2009/02/07(土) 09:27:29 ID:u7AiZVmn]
- webrootの.phpファイルからcakeのコントローラを読んで
表示したいのですが、 includeでコントローラが読めませんでした。 viewにすれば解決するのはわかるのですが、 外部からcakeの結果を受けとることって無理なんですかね?
- 616 名前:nobodyさん mailto:sage [2009/02/07(土) 10:22:18 ID:???]
- >>615
(今考えている解決方法がどうやったらできるかじゃなくて) 具体的に今抱えている問題を書き込んだほうが、解決につながりやすいと思うよ webrootにphpファイルを置くというのは、方向性が間違っている可能性が高い
- 617 名前:nobodyさん mailto:sage [2009/02/07(土) 18:26:40 ID:???]
- 複数のモデルデータを保存したい時ってどうやってる?
条件としてはどちらもバリデーション通ったら保存。 バリデーションチェックとその表示との両立が上手くできない。
- 618 名前:nobodyさん mailto:sage [2009/02/07(土) 18:37:09 ID:???]
- >>617
'validate' => 'first' でsaveAll() book.cakephp.org/ja/view/75/%E3%83%87%E3%83%BC%E3%82%BF%E3%82%92%E4%BF%9D%E5%AD%98%E3%81%99%E3%82%8B
- 619 名前:nobodyさん mailto:sage [2009/02/07(土) 19:28:59 ID:???]
- >>618
明確な答えをありがとう。 フォームのバリデーションエラー表示も少してこずりましたが試して見ます。 saveAllをネット上の情報で試したんですが、エラー表示がきちんと出なかったんですよね。 フォームヘルパーの指定方法の問題じゃないかと思っていましたが。 taskモデルと、アソシエーションしたTimelineモデル(hasMany)のフォームはこんな感じで書いてます。 echo $form->input('task'); echo $form->input('Timeline.progress'); ちょっと前見たときはsaveAllの説明なかった気がするのは気のせいかな・・。 履歴を見ると気のせいじゃない気もする、今月に入って誰か訳してくれたんだねありがとう訳者さん。
- 620 名前:nobodyさん [2009/02/07(土) 23:38:50 ID:K4fXwaLQ]
- 「マニュアル/開発例/ACLを制御するシンプルなアプリケーション」で
User自身が書いたPostのみ編集できて、他人のPostは編集できないようにしたいのですが、 どうしたらいいのかわかりません。>< isAuthorized()とかbeforeFilter()になんかちまちま書くしかないんでしょうか? 例えば、ACL使ってないけど、 function isAuthorized() { if ($this->Auth->user('username') == 'admin') { return true; } if (!empty($this->params['pass'][0])){ // ユーザー名 if ($this->Auth->user('username') != $this->params['pass'][0]) { return false; } } return true; } こんな感じとか?
- 621 名前:nobodyさん mailto:sage [2009/02/07(土) 23:48:49 ID:???]
- book.cakephp.org/ja/view/171/%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%E5%88%B6%E5%BE%A1%E3%83%AA%E3%82%B9%E3%83%88
- 622 名前:nobodyさん [2009/02/08(日) 00:16:52 ID:XBcxfvCP]
- TRPGオタしか喜ばなそうな上記説明を熟読すれば、
「マニュアル/開発例/ACL〜」のサンプルで id:1のUserのみがuser_id:1のPostを編集できるようにできるんですか?
- 623 名前:nobodyさん mailto:sage [2009/02/08(日) 01:12:57 ID:???]
- >>622
「TRPGオタしか喜ばなそうな上記説明を熟読すれば、」ってことは、 ちゃんと読んでないのか。 マニュアルくらい読めよw それとも読めないくらい馬鹿なの?ww もしそうだったらごめんねwww
- 624 名前:nobodyさん mailto:sage [2009/02/08(日) 02:18:10 ID:???]
- >>622
マニュアルの更なる理解のために「指輪物語」を読破するんだw
- 625 名前:nobodyさん mailto:sage [2009/02/08(日) 02:30:48 ID:???]
- formヘルパーで、複数のテキスト入力boxを
1行に並べるのって、どうするの?
- 626 名前:nobodyさん mailto:sage [2009/02/08(日) 04:45:10 ID:???]
- >>625
自分でフォームを書く
- 627 名前:nobodyさん mailto:sage [2009/02/08(日) 04:56:26 ID:???]
- >>626
えっ、マジ?
- 628 名前:nobodyさん [2009/02/08(日) 11:29:47 ID:XBcxfvCP]
- いや、読んだ上で言ってるんだが。。。
これだとテーブル単位では大丈夫だけど、レコード単位での権限の設定が できないんじゃないかと思うんだが、違うのか? なんか、ここはレベル低いなぁ。
- 629 名前:nobodyさん mailto:sage [2009/02/08(日) 11:49:57 ID:???]
- その処理は、自分で書くんだよ。
自分が投稿したやつだけ編集できるって。 当たり前だろ。 管理者は全員のものを編集できるかもしれないし、 別に編集者という人を作るかもしれない。 誰が何を編集できるかを決めるのはお前。 よってお前がそういうコードを書く。OK? レベルが低いのはお前。
- 630 名前:nobodyさん mailto:sage [2009/02/08(日) 12:03:59 ID:???]
- >>625
tableタグ使うと$form->text()を1行に並べること出来るよ。 後は、app/webroot/css/cake.generic.cssの内容を自分の好みに編集するだな。 (でも、なんでCakePHP1.2のdefaultのcssはこんなに変態なのだろ?)
- 631 名前:nobodyさん mailto:sage [2009/02/08(日) 12:10:49 ID:???]
- 'div' => 'false' とかで横に並べられた気もするが・・・
> (でも、なんでCakePHP1.2のdefaultのcssはこんなに変態なのだろ?) 同意。デフォルトのフォントの大きさとかマージンとか 各ブラウザの間での違いを吸収する程度にしておけばいいのに。
- 632 名前:nobodyさん [2009/02/08(日) 12:17:33 ID:XBcxfvCP]
- >>629
> その処理は、自分で書くんだよ。 いや、書かなきゃならないのは、最初からわかってるよ。 でも、どこに書けばいいのかがわからない。 isAuthorized()やbeforeFilter()に書くのか?
- 633 名前:nobodyさん mailto:sage [2009/02/08(日) 12:21:23 ID:???]
- チケットを投げるんだ。
Summary: "cake.generic.css" looks like hentai Type: RFC
- 634 名前:nobodyさん mailto:sage [2009/02/08(日) 12:23:13 ID:???]
- >>632
ご飯から食べるか味噌汁から食べるか。 好きにしろw
- 635 名前:nobodyさん mailto:sage [2009/02/08(日) 13:06:23 ID:???]
- >>631
<?php echo $form->text('hoge0', array('div' => 'false')); echo $form->text('hoge1', array('div' => 'false')); echo $form->text('hoge2', array('div' => 'false')); ?> これでは縦に3つ並んでしまったが、こんな書き方ではないのかな??
- 636 名前:nobodyさん mailto:sage [2009/02/08(日) 13:29:45 ID:???]
- >>628
レベルが低いのはお前の頭
- 637 名前:622 [2009/02/08(日) 13:32:48 ID:ByGZ6/FB]
- >>632
教えてやるから土下座して「自分の頭の程度が悪うございました」とPCの前で言え 単にACOにmodel,foreign_keyを目的のレコードのものに設定して登録して、 AROとACOの関係を定義するだけ ACO登録位置は種類考えて適宜選べ 関係の定義とチェック関数については>>622に書かれてる
- 638 名前:621 [2009/02/08(日) 13:33:26 ID:ByGZ6/FB]
- 622じゃなくて621だった
- 639 名前:nobodyさん mailto:sage [2009/02/08(日) 14:40:18 ID:???]
- CakePHPで掲示板作れます?
- 640 名前:nobodyさん mailto:sage [2009/02/08(日) 14:43:20 ID:???]
- >>639
お前は何を言っているんだ?
- 641 名前:nobodyさん mailto:sage [2009/02/08(日) 14:45:17 ID:???]
- >>640
質問しているのです。
- 642 名前:nobodyさん mailto:sage [2009/02/08(日) 15:03:43 ID:???]
- >>641
はいはい、ソーデスネ。 次のネタが思いつかないので、マジレスする。 作れます。 以上。
- 643 名前:nobodyさん mailto:sage [2009/02/08(日) 15:04:30 ID:???]
- >>639
ベタのPHPで作るより、短時間で、高機能(Ajaxなど)な掲示板が作れますよ。 がんばってください。
- 644 名前:nobodyさん mailto:sage [2009/02/08(日) 16:07:39 ID:???]
- >>642-643
がんばります!
- 645 名前:nobodyさん mailto:sage [2009/02/08(日) 16:20:11 ID:???]
- 自分の頭の程度が悪うございました
- 646 名前:nobodyさん [2009/02/08(日) 16:26:13 ID:SHT1by4H]
- バリデーションで、一つのフィールドに対して、
複数のルールを設定していた場合に、 一つのエラーが検知した場合以降の バリデーションはおこわないことは、出来ますか? 例えば、期間の入力があった場合、入力値が正しく なかった場合、その後の妥当な期間であるかどうかの チェックはいらないのですが。
- 647 名前:nobodyさん mailto:sage [2009/02/08(日) 16:41:27 ID:???]
- >>644
これから始めるなら、この本お勧め。 「CakePHP徹底入門」 CakePHP1.2で説明してあるから、とても楽に入門できた。 ttp://www.amazon.co.jp/CakePHP徹底入門-イージーゲート/dp/479811717X ↓このページも入門者にお勧めかな。 ttp://kuri6005.sakura.ne.jp/cake/wiki/
- 648 名前:nobodyさん mailto:sage [2009/02/08(日) 16:53:37 ID:???]
- >>646
book.cakephp.org/ja/view/133/ 'last' => true
- 649 名前:nobodyさん mailto:sage [2009/02/08(日) 17:20:04 ID:???]
- >>648
ありがとうございます。 すみません。 しっかりと説明されていますね。 もっとちゃんと読まないといけませんね。
- 650 名前:nobodyさん [2009/02/08(日) 17:46:55 ID:srWubjja]
- 携帯対応ページを作ろうと思って、/m/でリクエストされたら携帯ページを表示ってやろうとしていて
表示はうまくできたんですけど、PC用ページのフォームで、 $form->create('post', array('action' => 'view')); ってやったときに、$this->dataにデータが入っているときは、 action="/post/view/1"とかになるんだけど、データが入ってないと action="/m/post/view"って/m/が先頭につけられてしまいます。 プログラム中で/m/をつけてるのはroutes.phpで Router::connect('/m/:controller/:action/*", array('prefix' => 'mobile')); としているとこだけなんだけど、$form->createってここを見てURLを 自動生成してるんでしょうか? だとしたらどうやったらうまく解決できるんでしょうか?
- 651 名前:nobodyさん [2009/02/08(日) 18:01:22 ID:srWubjja]
- すんません、Router::Connectをコメントにしたらちゃんとうごきました。
ということは$form->createではこれをみてURLを生成してるんですね。 携帯、PCの両用サイト作ってる人はどうやって解決してるんでしょうか?
- 652 名前:nobodyさん mailto:sage [2009/02/08(日) 21:16:52 ID:???]
- >>647
ご丁寧にありがとうございます。 明日の夜にでも本屋に行ってこようと思います!
- 653 名前:nobodyさん mailto:sage [2009/02/08(日) 21:59:25 ID:???]
- cakephp.jp/
- 654 名前:nobodyさん mailto:sage [2009/02/08(日) 22:39:55 ID:???]
- >>635
うちもそれ試した。3行になっちゃった。 やっぱ、>626の言う通り、自分で フォームを書かないといけないのか・・・マンドクセ 生年月日を入力させるのに、セレクトメニューでは 不便なので、直接「年」「月」「日」の数字を 入力させたいのね。 何か、簡単な方法ある? できれば、年号(MTSH)が付いてると西暦に直して 欲しいんだけど・・・(そこまで求めるのは無理か。)
- 655 名前:nobodyさん mailto:sage [2009/02/08(日) 22:49:40 ID:???]
- 素のhtmlのタグを、cake流に変換するようなフィルタとかあればいいなー
- 656 名前:nobodyさん mailto:sage [2009/02/08(日) 23:14:43 ID:???]
- >>654
'div' => false にして、出てくるフォームが改行されるのは、FormHelperの問題と違う。 CSSでそう指定してあるから改行される。 input { clear: both; } みたいな感じで。 いっぺん、読み込んでるCSSファイルを移動するなりして、読み込めないようにしてみろ。
- 657 名前:nobodyさん mailto:sage [2009/02/09(月) 00:07:57 ID:???]
- >>656
CakePHP1.2の変態cssをとっぱらったら、'div' => 'false'を付けなくてもtextBoxが1行に ちゃんと3つ並ぶ。質問者はCakePHP1.2の変態cssを突破してtextBoxを1行に並べる方法を 質問しているのだと思う。 <?php echo $form->text('hoge0'); echo $form->text('hoge1'); echo $form->text('hoge2'); ?> <br> <br> <?php echo $form->text('hoge0', array('div' => 'false')); echo $form->text('hoge1', array('div' => 'false')); echo $form->text('hoge2', array('div' => 'false')); ?> >>654 自分でフォームを直接書いたとしても、CakePHP1.2の変態cssの壁に阻まれると思う。 敵はCakePHP1.2の変態cssだと思う。変態cssを攻略するのが近道。 tableタグを使うと変態cssの中でもtextBoxを1行で表示できる。が詳細なレイアウトを 調整しようとすると変態cssと戦わざるを得ない。 <table> <tr> <td><?php echo $form->text('hoge0'); ?></td> <td><?php echo $form->text('hoge1'); ?></td> <td><?php echo $form->text('hoge2'); ?></td> </tr> </table>
- 658 名前:nobodyさん mailto:sage [2009/02/09(月) 00:13:00 ID:???]
- 何で変態CSSのために
無駄な労力使ってるんだw
- 659 名前:nobodyさん mailto:sage [2009/02/09(月) 00:18:41 ID:???]
- >>658
暇で他にやる事もないので、チョットやってみただけ。
- 660 名前:nobodyさん mailto:sage [2009/02/09(月) 01:19:15 ID:???]
- てことはCSSを、YUIとかのリセットに変えればいいだけか
- 661 名前:nobodyさん mailto:sage [2009/02/09(月) 02:53:29 ID:???]
- >>659
じゃあ僕のサイト作るの手伝ってくれません?
|

|