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


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

【PHP】フレームワーク CakePHP 14ホール目【v2.1】



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/

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を操作したら手動でキャッシュ削除するしかないのだろうか

756 名前:nobodyさん mailto:sage [2012/11/08(木) 20:03:29.72 ID:???]
>>755
普通にModelのSave系やDeleteのメソッド使えば自動でキャッシュクリアしてくれるはず
そうでないなら自分で消すことになるよ

Modelのソース見てみると何やってるかわかるはず
api20.cakephp.org/view_source/model

757 名前:nobodyさん mailto:sage [2012/11/10(土) 18:06:28.89 ID:???]
cakePHPの勉強をすれば、純粋なPHPのクラス・オブジェクト指向の勉強・理解に役立ちますか?

758 名前:nobodyさん mailto:sage [2012/11/10(土) 20:59:34.75 ID:???]
立たないよ。その辺意識しないで良いためにフレームワークがあるんだし。

759 名前:nobodyさん mailto:sage [2012/11/10(土) 21:45:57.01 ID:???]
たつよ
ってか基本的なクラス・オブジェクトの概念がないとCake厳しいだろ

760 名前:nobodyさん mailto:sage [2012/11/10(土) 22:17:58.60 ID:???]
>>757
役に立たない。
cakeに限らずfwは効率を求めるために
純粋なオブジェクト指向から無理してるところがある。

761 名前:nobodyさん mailto:sage [2012/11/10(土) 22:41:59.32 ID:???]
"純粋なPHPのクラス・オブジェクト指向"


幽霊を追いかけるのはやめろ

762 名前:nobodyさん mailto:sage [2012/11/11(日) 03:32:21.94 ID:???]
単純な物作ってると、フレームワークの型に乗っかってるだけで
あまりオブジェクト指向の勉強・・・って感じにはならないけど、
ビヘイビアなんかを自分で作ってみると勉強になると思うよ



763 名前:nobodyさん mailto:sage [2012/11/11(日) 12:27:53.87 ID:???]
オブジェクト指向を勉強することが目的なのか、PHPを勉強することが目的かで変わってくるな。

PHPのオブジェクト指向そのものは言語仕様の一つのオプションみたいなものだから、
オブジェクト指向を勉強の目的とするにはあまり向いてない。
Cakeとか開発してる連中なんかはPHPだけやってるわけじゃなくて、
いろんな引き出し持ってるからこそ実装できてる箇所も多いと思う。

プログラムの初心者で、オブジェクト指向そのものを勉強したいならJavaがいいんじゃないかな。
別にC#でもいいかもしれないけどいろいろ金がかかる。
Javaはその点書籍もたくさんあるし、無料の資料とかも十分以上あって申し分ない。

764 名前:nobodyさん mailto:sage [2012/11/11(日) 17:01:18.82 ID:???]
cakePHP2.2.2で
条件によって joinsでテーブルをLEFT JOINさせようと思っているのですが
joinsを入れてできたSQL文を見ると まずjoinsが入ってから、アソシエーションのLEFT JOINが書かれています。
自分の joinsを後ろに持ってくることはできないでしょうか?

765 名前:764 mailto:sage [2012/11/11(日) 17:37:42.08 ID:???]
事故解決しました。。
A belongsTo B
B belongsTo C
で、Aの条件と Cの条件でAのリストをとりたかったので A->findでどうにかしようとしてましたが
B->find でとってきた Aを使えばよかったようです

766 名前:nobodyさん [2012/11/11(日) 17:59:06.36 ID:63qzaIYV]
バリデーションでalphaNumericが日本語も通してしまう問題は、2系では直ってますか?

767 名前:nobodyさん mailto:sage [2012/11/14(水) 15:59:16.85 ID:???]
>>764
これを実現する方法はないでしょうか?

768 名前:nobodyさん mailto:sage [2012/11/14(水) 16:10:58.98 ID:???]
>>766
試してないが、コードを見る限り同じっぽいから直ってないんでない?
1の時ハマったからalphaNumericは自作を使ってる

769 名前:nobodyさん [2012/11/16(金) 16:04:19.01 ID:WLRp6A/S]
CakePHP2.xのAjaxバリデーションについての質問です。

画面更新を伴わず、モデルで定義したバリデーションルールでバリデーションをかける方法を探しております。

jQueryで $("form").submit(function() {)

770 名前:nobodyさん mailto:sage [2012/11/16(金) 16:06:53.33 ID:???]
上の続きです。

jQueryで $("form").submit()
でフォーム送信ボタンが押された時のアクションを拾ってあげて、
そこからフォーム全体をコントローラに渡し、バリデートを行いたいのですが、
「フォーム全体をコントローラに送る」をどう記述していいのかわかりません。

よろしくお願いします。

771 名前:nobodyさん mailto:sage [2012/11/16(金) 16:17:17.30 ID:???]
過疎

772 名前:nobodyさん mailto:sage [2012/11/16(金) 16:34:43.12 ID:???]
それ、Cake関係ないよね。
あと、submit押した時にajaxにデータ投げて結果を受け取って
エラーがある場合はsubmit止めるって処理になるわけだけど、
そう言う想定は出来てるの?出来てるならやっぱりCakeは関係ないよ



773 名前:nobodyさん mailto:sage [2012/11/16(金) 16:53:16.45 ID:???]
Cake関係ないね

774 名前:nobodyさん mailto:sage [2012/11/16(金) 17:17:56.02 ID:???]
一旦ajax考えないで普通に動くフォーム作ってみればいいよ






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

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

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