- 1 名前:nobodyさん [2012/05/01(火) 16:58:44.53 ID:fVBzm1/A]
- 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 13ホール目【v2.0】 kohada.2ch.net/test/read.cgi/php/1320768310/
- 655 名前:nobodyさん mailto:sage [2012/10/02(火) 01:23:26.02 ID:???]
- いまだ1.3使ってる人いるんだな
何故2系を使わないのか
- 656 名前:nobodyさん mailto:sage [2012/10/02(火) 03:11:43.69 ID:???]
- 使う理由がないから
- 657 名前:nobodyさん mailto:sage [2012/10/02(火) 15:09:48.22 ID:???]
- さすがに新案件は2系だな
- 658 名前:nobodyさん mailto:sage [2012/10/02(火) 18:17:45.17 ID:???]
- これまで書いたコードを、2対応に書き直す時間がないお
- 659 名前:nobodyさん mailto:sage [2012/10/02(火) 18:23:04.39 ID:???]
- そんなに時間かからないよ
- 660 名前:nobodyさん mailto:sage [2012/10/02(火) 18:26:06.05 ID:???]
- >>659
きちんとテストコードをかいてるひとには苦行だぞ
- 661 名前:nobodyさん [2012/10/07(日) 03:32:25.58 ID:vSsbr+AJ]
- CakePHPでバリデーションエラー時に
エラーメッセージをまとめて一箇所に表示する方法ってある?
- 662 名前:nobodyさん mailto:sage [2012/10/07(日) 10:11:59.83 ID:???]
- >>661
無い
- 663 名前:nobodyさん mailto:sage [2012/10/07(日) 15:15:02.59 ID:???]
- ちょっと前に同じ話が出てたはず
ログ見るべし
- 664 名前:nobodyさん [2012/10/12(金) 18:03:03.50 ID:zHaiJKat]
- 最終ログイン時間を記録する場合どういう実装をするのが適切でしょうか?
僕が思いつくのは、 app_controller.phpのbeforeFilter()に、 アカウントテーブルのlastloginに現在の時間をupdateする方法です ログインのアクションに記述すると、 クッキーで自動ログインしている際などはそのアクションを通らないので不適切でした なにか他に良い方法ありますでしょうか??
- 665 名前:nobodyさん mailto:sage [2012/10/12(金) 23:39:10.35 ID:???]
- 自動ログインの場合も記録したいというのならそれが正解なんじゃないかな
- 666 名前:nobodyさん mailto:sage [2012/10/16(火) 15:59:26.74 ID:???]
- はてブで見かけた、
「外注が作ったCakeのコードが糞だから書き直した」的なブログ記事。 「お前のコードも糞じゃねぇか」って叩かれてワロタw てか、俺の書き方が意外と駄目じゃないと知っただけでも収穫あったぜ
- 667 名前:nobodyさん mailto:sage [2012/10/17(水) 20:17:29.91 ID:???]
- URLくれくれ
- 668 名前:nobodyさん mailto:sage [2012/10/17(水) 20:54:19.04 ID:???]
- ac7.tumblr.com/post/33569124174
これかな
- 669 名前:nobodyさん mailto:sage [2012/10/18(木) 00:28:24.24 ID:???]
- cakePHPの勉強を始めようと思い、ver2から始めようと思ってます。
「プロになるためのPHPプログラミング入門」という本が良さそうと思ったんですが、 ver1.3基準で書かれているようです。 cakePHP2を勉強するうえで、1.3基準の本は有用でしょうか?
- 670 名前:nobodyさん mailto:sage [2012/10/18(木) 01:17:25.05 ID:???]
- 有用ではありません。
もうcake2の本はあるんだからそっち選びなさい。 CakePHP2 実践入門 は評判良いぞ。
- 671 名前:nobodyさん mailto:sage [2012/10/18(木) 23:55:26.47 ID:???]
- >>669
670に同じく今さら1.3の本を読むのは時間のむだ。 公式のチュートリアルを何回も繰り返して手順を身体に覚えこませてから >>670 の本を読むといいと思うよ。
- 672 名前:669 mailto:sage [2012/10/22(月) 14:14:23.93 ID:???]
- 遅くなりましたがアドバイスありがとうございました
- 673 名前:nobodyさん mailto:sage [2012/10/24(水) 12:14:02.26 ID:???]
- 2.2.2を使用しています。
Authコンポーネントのログインで、認証条件を付ける時、 以下のようにすればOKとあったのですが、条件が適用されません。 書き方が違うのでしょうか? $this->Auth->userScope = array( 'User.status'=>1 );
- 674 名前:nobodyさん mailto:sage [2012/10/24(水) 14:29:36.53 ID:???]
- さくらサーバーをレンタルし、2.2.2のソースをCakeファイル直置きでアップロードした所
同コントローラの別アクションへredirect処理が行なわれなくなりました。 $this->redirect(コントローラ名:アクション名)を試してみても $this->redirect(相対パスor絶対パス)の形でも どちらの形式でも正しくリダイレクトが行なわれていないようです(真っ白なページが表示される) 何か間違っているのでしょうか
- 675 名前:674 mailto:sage [2012/10/24(水) 15:50:39.87 ID:???]
- とりあえず動かす為にJavaScriptで遷移させます
お騒がせしました
- 676 名前:nobodyさん mailto:sage [2012/10/24(水) 16:28:04.62 ID:???]
- >>673
それ、1.3の書き方なんじゃないの? よく分からんけど公式ドキュメントにそんなプロパティ載ってないよ 1.3ならあったみたいだけど >>674 真っ白=debugモードが0でいいのかな? だとしたらキャッシュクリアしてみた?
- 677 名前:nobodyさん mailto:sage [2012/10/24(水) 16:30:39.54 ID:???]
- >>673
今改めて見直したら AuthComponent::$authenticate じゃないかな?
- 678 名前:673 mailto:sage [2012/10/25(木) 09:13:43.26 ID:???]
- >>676-677
ありがとうございます。 自分もソースを見直したら、以下のようにしたら実行できました。 $this->Auth->authenticate = array( 'Form' => array( 'scope' => array('User.status' => 1) ) );
- 679 名前:nobodyさん mailto:sage [2012/10/26(金) 15:07:41.06 ID:???]
- ファイルアップロードを今まで自作コンポーネントで扱っていたのですが、
これってモデル(ビヘイビア)の処理ですかね? コントローラ側でエラーチェックとかアップロード先のパスとか書いていくと 長くなるのでどうすれば納まりが良く、使い回しが利くかと悩んでいます。
- 680 名前:nobodyさん mailto:sage [2012/10/26(金) 15:44:39.23 ID:???]
- 679ですが、後から考えたらコントローラに入れる方が小回り利きますね
効率化よりも今まで書いていた方法で行きます。
- 681 名前:nobodyさん mailto:sage [2012/10/26(金) 17:58:57.48 ID:???]
- まぁ、それでいいなら構わないけど、Modelだよ普通は。
あとプラグインもいいのあるけど、何で使わないの?
- 682 名前:nobodyさん mailto:sage [2012/10/26(金) 19:01:29.27 ID:???]
- >>681
自分の使い方だと、コントローラの方が良いと思いまして。 例えば、一度アップロードしたファイルはセッションに入れて、 フォームのその他の項目にエラーがある時は、 そのセッションを表示して再アップロードさせない。 みたいな処理を入れる時、セッションコンポーネントを使うので、 モデル内で解決するより、コントローラの方が簡単だと思いまして。 あと、プラグインも小回りが利かないんです。 ファイル名をいくつかのパターンで生成したい時とか、 最初は仮フォルダにアップして、save前に公開画面のフォルダに移動するとか そういう細かい仕様に対応するには自作の方が便利なんです。 ファイルアップロードの仕組みを自作する事自体は簡単ですし。
- 683 名前:nobodyさん mailto:sage [2012/10/26(金) 19:24:22.60 ID:???]
- 言わんとしてることは大体わかるけど、CRONの処理とかはないの?
テーブル無しのUploadFileモデルとか作った方が小回り効くような気がする・・・
- 684 名前:nobodyさん mailto:sage [2012/10/28(日) 17:11:17.13 ID:???]
- CakePHP2.2.2を利用しています。
コントローラーからビューにメンバ変数の連想配列を渡したいのですが、躓いています。 下記の Controller にて、 class UserController extends AppController { var $hoge = array(); public function beforeFilter() { $this->$hoge['foo'] = 1; $this->set(compact('hoge')); } } として View 側で$hoge['foo']を呼び出そうとして、 Undefined variable: hoge のエラーが返ります。 compactを使用しない場合でも同様でした。 book.cakephp.org/2.0/ja/controllers.html#Controller::set を参考に考えてみたのですが、何か思い違いをしていますでしょうか?
- 685 名前:nobodyさん mailto:sage [2012/10/28(日) 17:19:31.98 ID:???]
- >>684
$this->set('hoge',$this->hoge);
- 686 名前:nobodyさん mailto:sage [2012/10/28(日) 17:25:23.15 ID:???]
- >>685
すんなり解決しました。ありがとうございます。 提示内容を見て、どう思い違いをしていたのか理解しました。 これに半日かけてドキュメントを漁っていましたが、もう少し基本を勉強したいと思います。
- 687 名前:nobodyさん mailto:sage [2012/10/29(月) 12:31:19.66 ID:???]
- CakePHP 2.2.2で
一度だけ使えるクーポンを定義しようとしていて 'Model.coupon' => 'hoge' で保存しておいて checkルーチンで 'Model.coupon' => 'hoge'でfindし、見つからなければfalse 見つかったら'Model.coupon'=>'' でからにしてsave後 trueを返す。 というのを作ったのですが、 saveするとfalseが返ってきます。 saveをしなければ trueのまま返るのですがなぜなのでしょうか?
- 688 名前:nobodyさん mailto:sage [2012/10/29(月) 12:39:28.07 ID:???]
- >>687
バリデーションチェックでnotempty指定してるとか?
- 689 名前:687 mailto:sage [2012/10/29(月) 13:21:50.79 ID:???]
- >>688
SQLのダンプを表示させたところ findのSQLは どちらも同じなのですが、Num.rowsが saveした方では0になります。 save後にfindが走っているってことでしょうか
- 690 名前:nobodyさん [2012/10/29(月) 13:44:36.50 ID:h036kd/w]
- apps/Console/CommandHogeShell.php
この中で定義したメソッドに引数を渡す事ってできないの? CUIから内部で定義したメソッドをキックすると Warning Error: Missing argument 1 for HogeShell::Test() っていうエラーが出ちゃうんだけど。
- 691 名前:nobodyさん mailto:sage [2012/10/29(月) 13:55:16.32 ID:???]
- マニュアル読みなさい
- 692 名前:nobodyさん mailto:sage [2012/10/29(月) 15:09:32.64 ID:???]
- findについて質問です。
以下のようなモデルがあるとして A hasMany B B belongsTo C A.id = 1のCのリストを取得 $this->A->find('all', 'conditions'=>array('A.id'=>1))として 取得した中のBの中に含まれるCをとってくるしかないのでしょうか SQL文としては以下のようなものを想定しています。 SELECT C.* FROM A, B, C WHERE A.id=1 AND A.id = B.a_id AND C.id = B.c_id
- 693 名前:692 mailto:sage [2012/10/29(月) 15:56:52.28 ID:???]
- 'joins'で紐付けできました。
お騒がせしました
- 694 名前:687 mailto:sage [2012/10/29(月) 16:35:42.03 ID:???]
- find();
SQLダンプと結果の出力 exit; save(); だと、SQLダンプと結果はNumrows = 1 (データ更新されていないので何度呼び出しても、、)ですが find(); SQLダンプと結果の出力 save(); だと SQLダンプは同じで、Numrows=0になります。 後ろで行った saveが 前に書かれたfindに影響を与えるというのがどうしてなのかがわかりません。
- 695 名前:nobodyさん mailto:sage [2012/10/29(月) 16:45:00.54 ID:???]
- なにいってんだこいつ
- 696 名前:687 mailto:sage [2012/10/29(月) 16:49:40.01 ID:???]
- Queryを見ると saveを入れた方は
1. SELECT 文 Num.rows = 0 2. SELECT COUNT文 3. UPDATE 文 Num.rows = 1 となっていました。 3の結果が1へ影響しているみたいです。
- 697 名前:nobodyさん [2012/10/29(月) 19:04:11.24 ID:h036kd/w]
- >>691
マニュアルのどこにかいてんのさ。
- 698 名前:nobodyさん mailto:sage [2012/10/29(月) 19:18:29.22 ID:???]
- 書いてあるから隅々まで全部読みなさい
- 699 名前:687 mailto:sage [2012/10/29(月) 19:20:25.68 ID:???]
- すいません、私のブラウザのせいでした。
へんな機能拡張がページを2回呼んでたみたい
- 700 名前:nobodyさん mailto:sage [2012/10/30(火) 00:25:02.95 ID:???]
- >>697
cakephpでコマンドで引数を渡す とかでぐぐればいくらでも出てくるだろボケ
- 701 名前:nobodyさん [2012/10/30(火) 16:38:01.14 ID:sDbMhdsy]
- >>700
サンキュー。 あと $contents = @file($reading_file_name ); の @ ってなに?
- 702 名前:nobodyさん mailto:sage [2012/10/30(火) 16:42:13.00 ID:???]
- >>701
https://www.google.co.jp/search?q=php+%E3%82%A2%E3%83%83%E3%83%88%E3%83%9E%E3%83%BC%E3%82%AF&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ja:official&hl=ja&client=firefox-a
- 703 名前:nobodyさん mailto:sage [2012/10/30(火) 17:21:19.86 ID:???]
- >>701
お前はPHPの基本からやり直せ
- 704 名前:nobodyさん mailto:sage [2012/10/31(水) 01:06:58.14 ID:???]
- フレームワーク以前の問題ですな
- 705 名前:nobodyさん mailto:sage [2012/10/31(水) 12:18:01.71 ID:???]
- >>701
顔洗って出直してこいw
- 706 名前:nobodyさん mailto:sage [2012/10/31(水) 15:08:44.33 ID:???]
- passedArgsとgetの共存ってどしたらいいすか?
formヘルパから作られるgetをrest的なpassedArgs形式で渡したいッス。 example.com/controller/action/arg1:val1/arg2:val2/?arg3=val3 ってなってるヤツを example.com/controller/action/arg1:val1/arg2:val2/arg3:val3 としたいッス。 js使えば行けるし受け側でgetの処理をすればいけるんだけど、こうすれば楽じゃね?的なご指摘あればうれしいです。 >>671 現状はactionでgetとごちゃまぜにしたり、場合によってはappControllerでget優先で$this->passedArgsを書き換えてる感じッス。
- 707 名前:nobodyさん mailto:sage [2012/10/31(水) 15:10:54.24 ID:???]
- 了解ッス
- 708 名前:nobodyさん mailto:sage [2012/10/31(水) 19:38:39.19 ID:???]
- >>706
バージョン書けって 2系ならある程度分かってるから教えられるけど、 passedArgsってパラメータは1.3系なのかよ?
- 709 名前:nobodyさん mailto:sage [2012/10/31(水) 20:41:07.57 ID:???]
- >>708
2っすわー。
- 710 名前:nobodyさん mailto:sage [2012/10/31(水) 22:21:21.64 ID:???]
- >>709
api.cakephp.org/class/form-helper#method-FormHelpercreate FormHelper::create($mode, $options) の、第2パラメータ $options に、 'url'をキーとしたパラメータをセット。 'url' の値は string | array で、そういうパラメータを渡したい場合は 連想配列で構造を渡す。 CakePHPのルータがこの連想配列のURLパラメータと現実のURLを相互変換するのは理解OK? で、通常のURLパラメータに該当しないキーで値をセットすると、 ・・・つまり array('arg1'=>'val1', 'arg2'=>'val2') のようにやると、やりたいことができる。
- 711 名前:nobodyさん mailto:sage [2012/10/31(水) 22:50:43.25 ID:???]
- 何いってんの?
formにゅうりょくちをコロンセパレートにしたいんだろ formってそういう仕様だから、自分で言ってるとおりjsでがんばる。それかばかだけどリダイレクトしちゃえ
- 712 名前:nobodyさん mailto:sage [2012/10/31(水) 23:58:50.04 ID:???]
- んなもんそれ以外の方法で出来るわけねーだろ
- 713 名前:706 mailto:sage [2012/11/01(木) 11:41:29.98 ID:???]
- みんな色々意見あざす〜。
結局ちまちまやるっきゃないぽいっすね〜。 みんなそうしてるんかね〜。マンドクサ
- 714 名前:nobodyさん mailto:sage [2012/11/01(木) 13:50:06.03 ID:???]
- 俺もフレームワーク使う限りには効率的なやり方を模索して
長時間、あれやこれやと試すことがあるけど、 目的は「動く」事だから、効率化や綺麗なソースよりも まずは動くことを目指してやると良いよ。こだわりすぎはいかんぞ。
- 715 名前:nobodyさん mailto:sage [2012/11/01(木) 15:07:46.14 ID:???]
- cakephp2.2を使用しています。
ビューからrequestActionでカテゴリを取得しようとしているのですが、 $this->requestAction('/widget/category'); widgetコントローラにcategoryアクションが無い場合は どうすればいいのでしょうか? 単なる構文ミスでエラーになるのですが、 存在確認みたいなコードがあれば教えてください。
- 716 名前:nobodyさん mailto:sage [2012/11/01(木) 16:54:03.16 ID:???]
- >>714
納品してポイなら良いんだけどね〜。 何年か自分たちでメンテしていくことになるときには気分の良いコードの方が精神衛生上いいなぁと。 まぁそうは言ってもね、一年前のコード見てすごく気分悪くなるんですけどねw
- 717 名前:nobodyさん [2012/11/03(土) 21:12:09.24 ID:nZj97DWz]
- 質問なんですけど、cakePHP 2.0 で認証時に使用するテーブルの列の名前を
id じゃなくて login_id にしたいんですけど、この列名って固定なんでしょうか?
- 718 名前:nobodyさん [2012/11/03(土) 21:18:17.79 ID:X1g36ZBW]
- $primaryKey
- 719 名前:nobodyさん mailto:sage [2012/11/03(土) 21:43:28.47 ID:???]
- >>717
primaryKey を login_id に設定した上で 下記コードを記述しました。 <td><?php echo $this->Form->input('login_id', Array('label' => false,'style' => 'width:150px;')); ?></td> するとなぜか、コンボボックスが表示されてしまうんですけどなんでしょうか?
- 720 名前:nobodyさん mailto:sage [2012/11/03(土) 22:58:33.57 ID:???]
- マニュアルのFormの項目見たりFormHelperのAPIリファレンスみたりソース見たりしてきて
- 721 名前:nobodyさん mailto:sage [2012/11/03(土) 23:04:10.03 ID:???]
- 適当に調べてみます。
- 722 名前:nobodyさん mailto:sage [2012/11/03(土) 23:10:32.22 ID:???]
- >>719
FormHelper::input は、オプションの自動補完機能があるんですよ〜 で、***_id っていうフィールド名の場合、フォームのデータ型を指定しないとselect扱いになるというわけ。 それを回避するには、オプションで明示的に'type'を'text'とかに指定する。
- 723 名前:nobodyさん mailto:sage [2012/11/04(日) 00:26:48.52 ID:???]
- >>722
ありがとうございます。全くしりませんでした。。。 別な方法で迂回して対処しようとしてました。。。
- 724 名前:nobodyさん mailto:sage [2012/11/04(日) 00:44:08.63 ID:???]
- AdminsController.php の中に次のコードを書いています。
public $uses = Array('User'), $components = Array( 'Session', 'Auth' => Array( 'loginRedirect' => Array('controller' => 'admins', 'action' => 'index'), // ログイン後のリダイレクト先 'logoutRedirect' => Array('controller' => 'admins', 'action' => 'login'), // ログアウト後のリダイレクト先 'loginAction' => Array('controller' => 'admins', 'action' => 'top'), // ログインしていない場合のリダイレクト先 'authenticate' => Array('Form' => Array('fields' => Array('username' => 'email'))) ) ); そしてブラウザより /admins/add にアクセスすると問題無く /admins/addのコントローラが実行され /Views/Admins/add.ctp が表示されるのですが /admins/addcustomer にアクセスすると、/admins/top に飛ばされてしまいます。 なぜ、/admins/add がリダイレクトされないのに /admins/addcustomer だと リダイレクトされてしまうのでしょうか? ※add() { //略 } をコピーして作成したコントローラ内のファンクションが addcustomer () { //略 }となります。
- 725 名前:nobodyさん mailto:sage [2012/11/04(日) 11:00:47.88 ID:???]
- CakePHP 5.0ぐらいになったら使う
- 726 名前:nobodyさん mailto:sage [2012/11/04(日) 12:56:08.07 ID:???]
- >>1にあるフォーラムで新規登録したいのだけど、フォームから登録しても全く音沙汰無し。
ニュースリリース見ると2006年で登録止まってるし、管理者からは放置されてるのかな? フォーラム自体の投稿はぼちぼちあるから古参だけの閉じた環境になってる?
- 727 名前:nobodyさん mailto:sage [2012/11/04(日) 13:01:18.74 ID:???]
- Cakeで作ってあるからバグってるとかなんじゃないの
知らんけど
- 728 名前:nobodyさん mailto:sage [2012/11/04(日) 13:16:21.36 ID:???]
- フォーラムはxoopsじゃないか
- 729 名前:nobodyさん mailto:sage [2012/11/04(日) 19:10:28.20 ID:???]
- なぜCakeで設計しないのか?!
- 730 名前:nobodyさん [2012/11/04(日) 21:38:37.79 ID:eiB+7ElR]
- 画面上に次の2つの入力項目があります。
そのうち、1)と2)で入力された値の組み合わせのチェックを 独自バリデーション内で行いたいのですが どうすれば、独自バリデーションファンクション内でサブIDの値を 捕捉する事が出来ますか? 1)基本ID ( basic_id ) 2)サブID ( sub_id ) public $validate = Array( 'basic_id' => Array( 'dokuzi' => array( 'rule' => array('isCorrectId', 'ダミーの引数'), 'message' => '独自バリデーションの結果エラーが出ました。。' ) function isCorrectId($data, $dummy_args) { $basic_id = $data["basic_id"]; $sub_id = {サブID}; ← どうやって取得したらいいか分かりません。 return true; //return false; }
- 731 名前:730 [2012/11/04(日) 21:56:02.04 ID:eiB+7ElR]
- お願いです!誰か教えて下さい。
はまりまくってます。
- 732 名前:nobodyさん mailto:sage [2012/11/04(日) 22:07:20.84 ID:???]
- >>730
バージョン不明なので2と仮定して、 定石的に Model に定義しているのを前提に。 Post されたデータなら $this->data['Model']['basic_id'] $this->data['Model']['sub_id'] で参照出来ると思うけど、何でわざわざ関数に引数渡すの? あと”ダミーの引数”って書き方だけだと配列で渡しているか不明なんだけど、 配列で渡してないから参照出来ないんじゃないのか?
- 733 名前:nobodyさん mailto:sage [2012/11/04(日) 22:10:34.23 ID:???]
- >>731
数レス進んでいる中でスルーされているんならわかるが、 無レスで催促求めるんなら2ch向いてない、ヤフー知恵袋あたりに帰れ
- 734 名前:730 [2012/11/04(日) 23:39:10.86 ID:eiB+7ElR]
- >>732
ありがとうございます。 次の様に項目毎に独自バリデーション関数を指定したところ ファンクション内で var_dump($data); をしたら 画面上の入力項目(基本ID、サブID)の値も取得出来る様になりました。 public $validate = Array( 'basic_id' => Array( 'dokuzi' => array( 'rule' => array('isCorrectSequenceNumber'), 'message' => '独自バリデーションです。' ) ), 'sub_id' => Array( 'dokuzi' => array( 'rule' => array('isCorrectSequenceNumber'), 'message' => '独自バリデーションです。' ) ),
- 735 名前:730 [2012/11/04(日) 23:46:59.54 ID:eiB+7ElR]
- >>734
で、いけると思ったんですけど 結局バリデーションファンクションに値が入って来るのは 1項目毎なのですね。。。 基本ID と サブID の値を同時に絡めて独自判定処理を入れたいのですが 1つのファンクションじゃできないみたいです。 ちょっと回りくどいけど、外部ファイルにパラメータを保存して よみとってやるしかないんでしょうか? ※cakePHP2 を使用しています。
- 736 名前:730 [2012/11/05(月) 00:05:07.80 ID:Ag4y5/HL]
- 自己解決。
コントローラの中でモデルの中で定義した独自バリデーション ファンクションを呼べばいいんですね。 すると data の中には画面上で入力された値全てを 取得する事が出来ました。
- 737 名前:nobodyさん mailto:sage [2012/11/05(月) 00:43:14.75 ID:???]
- DRYの原則無視して良いんならそれもで良いんじゃい?
したらそもそもCakePHP使わずに他の Framework 使えば良いのに。 あと>>732で書いていることを全く理解してないのな。 isCorrectSequenceNumberの中身も書いてないし、そんなんで アドバイス出来るのはエスパーだけだから知恵袋帰れ。 なんか>>713に通じる者がある。
- 738 名前:nobodyさん mailto:sage [2012/11/05(月) 04:25:36.32 ID:???]
- 2chは初めてか?config::debug抜けよ^^
- 739 名前:nobodyさん [2012/11/05(月) 11:46:36.35 ID:eArr6OfY]
- config::debug抜けよ^^
↑ これはどーいう効果があるのさ^^?
- 740 名前:nobodyさん mailto:sage [2012/11/05(月) 18:02:18.24 ID:???]
- 臭いものに蓋をする ってこうかがあるよ^^
- 741 名前:nobodyさん [2012/11/05(月) 18:33:53.33 ID:eArr6OfY]
- ↑
臭いレスをありがとう
- 742 名前:nobodyさん mailto:sage [2012/11/07(水) 11:03:27.13 ID:???]
- conditionsの条件は違うんだけど、似たような処理を行うコントローラがあって、
今まではifやswitchで分けて1つのコントローラ内で納めてたんだけど、 よく考えたら、コピーしてアクション分けした方が見やすいと思うようになった。 ただ、コントローラのソースが増えるからと言って 分けすぎるとスパゲティコード化するし、本末転倒な気がする。 みんなはどういう理念の元、開発してる?
- 743 名前:nobodyさん [2012/11/07(水) 11:32:44.89 ID:DVy9uKri]
- 質問です
Cakeでテーブルのカラムのコメントを取得・更新する方法を教えてください
- 744 名前:nobodyさん mailto:sage [2012/11/07(水) 13:21:38.42 ID:???]
- カラムのコメントって何ですか?
- 745 名前:nobodyさん mailto:sage [2012/11/07(水) 13:40:48.60 ID:???]
- RDBMS依存のやつ?
- 746 名前:nobodyさん mailto:sage [2012/11/07(水) 14:08:49.06 ID:???]
- 何ですか?といわれましても…
依存なんですか?
- 747 名前:nobodyさん mailto:sage [2012/11/07(水) 17:42:47.92 ID:???]
- >>742
CakePHPベストプラクティスとかfatモデルとかでぐぐれ まさに解決策が載ってる ポイントは ややこしい処理は全部モデルへ移せ パラメータだけコントローラにおいて置けばいい って感じ
- 748 名前:nobodyさん mailto:sage [2012/11/07(水) 20:09:38.47 ID:???]
- モデルを肥大化させると小回り利きづらくなるんだよな
- 749 名前:nobodyさん mailto:sage [2012/11/07(水) 21:01:57.66 ID:???]
- 一個のモデルを大きくするんじゃなくて、
モデルを小分けしてアクションの数だけ作ったらいいという話も聞いたが、 Modelディレクトリの直下に並列保存は正直きついな。 もう少しオートローダが強力だと独自に階層作れそうなんだけど。
- 750 名前:nobodyさん mailto:sage [2012/11/07(水) 22:01:19.49 ID:???]
- 小分けすると結局、スパゲティーにならないか?
階層たどって何がどう連携しているかわかりづらくなると思うよ
- 751 名前:nobodyさん mailto:sage [2012/11/07(水) 23:02:38.91 ID:???]
- 少なくともテーブルとレコードの分離はしたい
- 752 名前:nobodyさん mailto:sage [2012/11/07(水) 23:11:41.84 ID:???]
- ベストプラクティスを知るために、cakeを使った大きなプロジェクトのソースを見れたらいいなあ
規模毎にみんなでコードレビューをしたい
- 753 名前:nobodyさん mailto:sage [2012/11/07(水) 23:39:08.77 ID:???]
- baserCMSのソース見たけど、まさにスパゲティーコードだった
どこで何してるか把握するのに時間がかかる
- 754 名前:nobodyさん mailto:sage [2012/11/08(木) 02:24:42.59 ID:???]
- croogoはどう?
- 755 名前:nobodyさん mailto:sage [2012/11/08(木) 16:45:25.90 ID:???]
- テーブルのカラムを変更した後、何度やってもfinの値が取得出来ないことがあった。
結果的には、modelキャッシュが利いていたのが原因だった。 本番サーバだから、debugレベルも0にしていたので気づくのが遅れたんだけど、 今後の運用に対して良い方法無いかな? やっぱり、何かDBを操作したら手動でキャッシュ削除するしかないのだろうか
|

|