【PHP】フレームワーク CakePHP 15ホール目【v2.2】
レス数が900を超えています。1000を超えると表示できなくなるよ。
0001nobodyさん
2012/12/04(火) 13:06:36.87ID:ExCLhBiPCakePHPから派生したLithium(li3)も専スレできるまではここでどうぞ
質問するときはCakePHPのバージョンを書きましょう
※他フレームワークとの比較等はスレ違いです
■本家
http://www.cakephp.org/
APIドキュメント
http://api.cakephp.org/
github - cakephp
http://github.com/cakephp
the Bakery
http://bakery.cakephp.org/
CakeQs
http://cakeqs.org/
Issue
http://cakephp.lighthouseapp.com/dashboard
CheatSheet[1.2] (PDF)
http://cakephp.org/files/Resources/CakePHP-1.2-Cheatsheet.pdf
■日本語公式
http://cakephp.jp/
フォーラム
http://cakephp.jp/modules/newbb/
cookbook(マニュアル)
[2.x] http://book.cakephp.org/2.0/ja/index.html
[1.3] http://book.cakephp.org/ja
前スレ
【PHP】フレームワーク CakePHP 14ホール目【v2.1】
http://kohada.2ch.net/test/read.cgi/php/1335859124/
0810nobodyさん
2013/07/02(火) NY:AN:NY.ANID:???管理者と一般ユーザ(それぞれ admins, users として)を統合する
上位のテーブルをこれから作れないの?
全ユーザーテーブル all_users にして、
admins と users にそれぞれ all_user_id を追加するという具合に
0812nobodyさん
2013/07/02(火) NY:AN:NY.ANID:???>>807様と>>810様のアドバイスの合わせ技で、以下のようにしました。
users テーブルを新たに作成
カラム id, username, password, role を設定
↓
admins テーブル、 customersテーブルに カラム user_id を追加
↓
モデル Admin,php に$belongsTo Userを設定
モデル Customer.php に$belongsTo Userを設定
↓
AppContorollerのbeforeFilter()でユーザのRoleを判定し
ログインリダイレクト先とログアウトリダイレクト先を設定。
あとは各コントローラのbeforeFilter()にRole判定を入れてしまえば
だいたい完成かなと思っております。
ありがとうございます。
0813nobodyさん
2013/07/02(火) NY:AN:NY.ANID:???0814nobodyさん
2013/07/02(火) NY:AN:NY.ANID:???だとしたら冗長だな。
User hasOne Customer
User hasOne Admin
にした方がいいと思うが。
0815nobodyさん
2013/07/05(金) NY:AN:NY.ANID:???0816nobodyさん
2013/07/11(木) NY:AN:NY.ANID:???Cake2です
0819nobodyさん
2013/07/11(木) NY:AN:NY.ANID:???設計まずい?
0821nobodyさん
2013/07/11(木) NY:AN:NY.ANID:???0822nobodyさん
2013/07/11(木) NY:AN:NY.ANID:???モデルのコンストラクタは引数決まってるしCakeが勝手に呼んでくれるけど
そこをオーバーライドして、引数を追加しろって事?
0828nobodyさん
2013/07/11(木) NY:AN:NY.ANID:???やはりコンストラクタが確実なんじゃないですかね?
引き続きその線で考えてみます
0829nobodyさん
2013/07/12(金) NY:AN:NY.ANID:???・stackoverflow
・2ちゃん
・質問対象のコミュニティ、フォーラム
どれも試したが、stackoverflowは質問が大杉てすぐ流れちゃって閲覧されない
簡単な質問ならすぐレスが付く、ただし数分過ぎたらもうレスは付かない
質問対象のコミュニティ、フォーラムは過疎ってることが多い
2ちゃんはアホばかり
いちばんレスは得られるが煽りばかり
さあどれを選ぶ?他にある?
0830nobodyさん
2013/07/12(金) NY:AN:NY.ANID:???うざがられるの覚悟なw
0831nobodyさん
2013/07/12(金) NY:AN:NY.ANID:???いつまでたってもぜーんぶ他人だより
そろそろ自分でなんてかすることおぼえろよ
0832nobodyさん
2013/07/12(金) NY:AN:NY.ANID:???0833nobodyさん
2013/07/12(金) NY:AN:NY.ANID:???http://api.cakephp.org/2.3/class-Component.html
これ見てわかったら反省しろ
0834nobodyさん
2013/07/12(金) NY:AN:NY.ANID:???0836nobodyさん
2013/07/12(金) NY:AN:NY.ANID:???頭悪いにも程があるな
0837nobodyさん
2013/07/12(金) NY:AN:NY.ANID:???0839nobodyさん
2013/07/12(金) NY:AN:NY.ANID:???2年ぐらい前までは、まだたまに有益なレスが得られたものだが
0840nobodyさん
2013/07/12(金) NY:AN:NY.ANID:???0841nobodyさん
2013/07/12(金) NY:AN:NY.ANID:???俺の周りだけ?
0843nobodyさん
2013/07/12(金) NY:AN:NY.ANID:???0844nobodyさん
2013/07/12(金) NY:AN:NY.ANID:???Component を使ってる Controller じゃなんであかんのや?
0845nobodyさん
2013/07/12(金) NY:AN:NY.ANID:???これ以上触れないほうが双方の利益
0846nobodyさん
2013/07/12(金) NY:AN:NY.ANID:???0847nobodyさん
2013/07/19(金) NY:AN:NY.ANID:???がいいの?
ずっとコントローラーでやってたんだけど「isForeignKeyみたいな標準バリデーションを用意してくれ」っていう
提案が出されてるのを見つけて、バリデーションの方で実装しようかと心が揺れてる
https://cakephp.lighthouseapp.com/projects/42648/tickets/3213-suggestion-for-validating-foreign-keys
0848nobodyさん
2013/07/19(金) NY:AN:NY.ANID:???ビヘイビアでも作っておけばいいんじゃないの?
0849nobodyさん
2013/07/19(金) NY:AN:NY.ANID:???その方向で直してみるわ
0850nobodyさん
2013/07/24(水) NY:AN:NY.ANID:???任せておけばプレースホルダ使ってくれるんだよね?
0852nobodyさん
2013/07/25(木) NY:AN:NY.ANID:???0853nobodyさん
2013/07/25(木) NY:AN:NY.ANID:???find と save だけ使ってりゃ大丈夫だったか。
0854nobodyさん
2013/07/25(木) NY:AN:NY.ANID:???結構使ってるつもりだったが初めて知ったわ
0855nobodyさん
2013/07/25(木) NY:AN:NY.ANID:???正直面倒
0856nobodyさん
2013/07/25(木) NY:AN:NY.ANID:???何か難しい問題があるのかな
既に別のフレームワークへ移ってしまったが
0857nobodyさん
2013/07/25(木) NY:AN:NY.ANID:???これ問題じゃないだろ
カラム名+1とか出来るようにしてんじゃないの?
0858nobodyさん
2013/07/25(木) NY:AN:NY.ANID:???カウンター増減専用メソッドが存在しないための対処なんだな
0859nobodyさん
2013/07/25(木) NY:AN:NY.ANID:???難しい問題があるというよりも、生のSQLを用いた
更新ロジックを作りたかったんじゃないかな。
とは言え、他のは自動的にサニタイズされるのに
これだけ自前でやるだなんて、問題ないとは言えないと思うが。
オプションで "sanitize" => false とか
指定できるようにすればいいわけだから。
0860.net 99
2013/07/30(火) NY:AN:NY.ANID:li987LIG!次のサイトでは、セッションのタイムアウト時間として
'timeout' => 259200,
と記載されていますが、timeoutに指定する時間単位は分ですよね?
259200分 = 4320時間 = 180日
の設定となり異常に長いのですがこれは開発用に敢えて長い
時間を設定しているという認識で良いでしょうか?
http://weble.org/2012/03/22/cakephp-session-database
0861nobodyさん
2013/07/30(火) NY:AN:NY.ANID:???0862nobodyさん
2013/07/30(火) NY:AN:NY.ANID:???何でその長さにしたのかはブログの作者に直接聞くといい
0863.net 99
2013/07/30(火) NY:AN:NY.ANID:li987LIG!ありがとうございます。うーん。
ブログで得意気に情報を公開するのは結構ですが間違った
情報を堂々と公開するのは勘弁してほしいですね。
ちょっと自分でブログにまとめます。
0864nobodyさん
2013/07/30(火) NY:AN:NY.ANID:???お前の用途に合って無かっただけ
0865nobodyさん
2013/07/30(火) NY:AN:NY.ANID:???あとブログの情報なんてのは間違っていても全然おかしくないわ。公式のヘルプでも間違ってんのに。
問題はお前みたいに間違いに気づいたと思っても、
恥ずかしかったり面倒くさかったりでアクションを起こさないやつだ。
0866nobodyさん
2013/07/30(火) NY:AN:NY.ANID:???はよ
0868860
2013/07/30(火) NY:AN:NY.ANID:qDXmbOPS騙るなクズ
0869nobodyさん
2013/07/30(火) NY:AN:NY.ANID:???そんなに改良するところがあるもんなのかな
CakePHPにかぎらず、なかなか一つの定番に落ち着かないもんだな
ま、PHP 自体が変化しているから仕方ないのかな?
0870nobodyさん
2013/07/30(火) NY:AN:NY.ANID:???0871nobodyさん
2013/07/31(水) NY:AN:NY.ANID:???0872nobodyさん
2013/08/03(土) NY:AN:NY.ANID:???http://blog.sumyapp.com/2013/07/no-recommend-rails/
0873nobodyさん
2013/08/03(土) NY:AN:NY.ANID:???0874nobodyさん
2013/08/03(土) NY:AN:NY.ANID:???同意だわ
0875nobodyさん
2013/08/03(土) NY:AN:NY.ANID:???0876nobodyさん
2013/08/04(日) NY:AN:NY.ANID:???>どれもプログラマにとっては当たり前のキーワードだが、オートインクリメントって何?って人がほとんどなのではないだろうか?
どんな連中が回りにいるんだよwww
0877nobodyさん
2013/08/04(日) NY:AN:NY.ANID:???0878nobodyさん
2013/08/04(日) NY:AN:NY.ANID:???てかcake触る人でもDB構築してるわけじゃん?autoincrement知らないわけないんじゃないのか
0879nobodyさん
2013/08/04(日) NY:AN:NY.ANID:???0880nobodyさん
2013/08/04(日) NY:AN:NY.ANID:???そのため架空のフィールド名'tmp.hoge.huga'みたいなのでタグを生成してるのですが、編集の際にまたこねくり回してフォームに値を戻したいです
その際にどこかに値をセットすれば値を戻してくれたりするのでしょうか?
コントローラでthis->dataに辺りに値を戻せば戻してくれると思ったのですが、上書きすんなってdata上書きすんなって怒られました
0881nobodyさん
2013/08/04(日) NY:AN:NY.ANID:???0882nobodyさん
2013/08/04(日) NY:AN:NY.ANID:???0883nobodyさん
2013/08/04(日) NY:AN:NY.ANID:???意図することはわかるのですが具体的にどんな感じで書けばいいのでしょうか??
0885nobodyさん
2013/08/04(日) NY:AN:NY.ANID:???ファイルのアップロードを行っていて
mysqlのカラム名はfile_nameでtext型 not NULL で作っていて
コントローラーでfileの名前を変えた後
$this->request->data['Model']['file_name'] = $imageName;
$this->Model->save($this->request->data)
で保存しています
ほかのIDやbodyなどは正常に保存できていて
file_nameだけphpmyadminで見ると全部NULLになります
でもviewのほうで<?php echo $Item['Model']['file_name']; ?>
とするとしっかり保存されている名前がでてきます
ファイルもしっかり保存されています
mysqlとの食い違いがよくわかりません
原因とかえすぱーできませんか(´;ω;`)ブワッ
0886nobodyさん
2013/08/04(日) NY:AN:NY.ANID:???> file_nameだけphpmyadminで見ると全部NULLになります
おかしくないか?
0887nobodyさん
2013/08/04(日) NY:AN:NY.ANID:???phpmyadminのバグなのかもしれないけど
カラム名も表示されないんだよね
なんか違反してるのかなぁ
>>886
ちゃんとnot NULLで作ってるけど
表示はNULLで中身はしっかり入ってる状態っていうのかなぁ・・・
値は取れるから・・・
プログラミング自体初心者だから積んでる(´;ω;`)ブワッ
0888nobodyさん
2013/08/04(日) NY:AN:NY.ANID:???バグでもなんでもなくてphpmyadminの仕様で表示が省略されるっていうのでした
すいませんでした
0889nobodyさん
2013/08/05(月) NY:AN:NY.ANID:???class こねくるモデル extends AppModel {
public function こねくる(元のデータ) {
// こねくりまわす
return こねくり回されました!
}
public function もどす(こねくり回されました!){
// こねくりを元にもどす
return 元のデータ
}
}
場合によっては不可能だけど、事情が許せば
static にして、更に可能なら Utility とかのディレクトリに
別のクラスを作ってそこに実装する
そうするとテストや保守がしやすい。
0890nobodyさん
2013/08/05(月) NY:AN:NY.ANID:???beforeSaveで加工して
afterFindで戻せばいいだけじゃないの
0892880
2013/08/05(月) NY:AN:NY.ANID:???あとは、返却された値を$this->request->dataに入れればスムーズに行きそうな感じですね
>884の通りrequestの方でした、this->dataもあって中身は同じでした
ちなみにやりたかったのは複数レコードの挿入で、
A. x
B. y
C.1
d.1 2 3
E. 9
f. 4 5 6
と入力された時に
[x y 1 - 1][x y 1 - 2][x y 1 - 3]
[x y 9 - 4][x y 9 - 5][x y 9 - 6]
みたいな6レコードを挿入するみたいな感じです
0893nobodyさん
2013/08/05(月) NY:AN:NY.ANID:???>>892の最後の段落とかわけわからん
0894880
2013/08/05(月) NY:AN:NY.ANID:???0895nobodyさん
2013/08/05(月) NY:AN:NY.ANID:???>ちなみにやりたかったのは複数レコードの挿入で、
なんでそれを解決してから書くの?
なんで先に書かないの?
0896880
2013/08/05(月) NY:AN:NY.ANID:???仕切りなおしで意見を聞きたいんですけど、formヘルパーのinputメソッドを使う時、typeやoptionとかの指定ってviewに直接書いてますか??
自分はmodelのメンバ変数にカラム名=type等を設定しておき、コントローラでそれを$this->set('options',$this->model->hoge)として
、viewで$this->Form->input('hoge',$options)としています
どこかでまとめて設定しておければ後々便利だと思うのですが、みなさんはどうしているのでしょう?
inputDefaultもありかと思うのですが、修正の際に該当箇所が複数あった場合、直すのがめんどいですよね
0897nobodyさん
2013/08/05(月) NY:AN:NY.ANID:???0898nobodyさん
2013/08/05(月) NY:AN:NY.ANID:???0899880
2013/08/05(月) NY:AN:NY.ANID:???なるほど、helperを自分で作るか改造するかってことですね
ありがとうございます
>897
いろいろと参考になったので消えときます!
0900nobodyさん
2013/08/05(月) NY:AN:NY.ANID:n+BD/Kj+不可解な動きに困っています。ユーザ認証用に作成した user モデルの
中に email 入力エリアがあり、次の様な画面フォーマットになっています。
バリデーションとして
メールアドレスかIDを入力する為、メールアドレス形式では無い
値を�@に入力される場合もあります。
その場合には、当然メールアドレス形式として打倒か否かのバリデーション
を無効化したいのですが、コメントアウトしてもバリデーションがどうやら
掛かってしまっています。何が原因なのでしょうか?
�@ID(メールアドレス) ■■■■
�Aパスワード ■■■
[ログイン]
public $validate = Array(
'email' => Array(
/*
'required' => Array(
//'rule' => Array('notEmpty'), // 空でないか
'rule' => Array('date'),
'message' => 'メールアドレスを入力してくださいね!。'
)
*/
),
0901nobodyさん
2013/08/05(月) NY:AN:NY.ANID:???登録時じゃなくてログインのこと?
0902900
2013/08/05(月) NY:AN:NY.ANID:???emailのバリデーションをどうしても外す事が出来ません。
0903nobodyさん
2013/08/05(月) NY:AN:NY.ANID:???それでもやはりバリデーションが掛かっている様です。。。
public $validate = Array(
/*
'email' => Array(
'required' => Array(
//'rule' => Array('notEmpty'), // 空でないか
'rule' => Array('date'),
'message' => 'メールアドレスを入力してくださいね!。'
)
),
*/
0904nobodyさん
2013/08/05(月) NY:AN:NY.ANID:???それモデルのバリデーション全く関係ないから。
たぶん Auth コンポーネント使ってるんだろうけど、
http://cakephp.jp/modules/newbb/viewtopic.php?topic_id=1128&forum=8
http://d.hatena.ne.jp/lagos_on/20090803/1249292495
http://blog.xao.jp/blog/cakephp/customize-authorization-for-login-using-dual-fields/
あたりを参考にすれば良いと思う。
0905nobodyさん
2013/08/05(月) NY:AN:NY.ANID:???・・・�@
を実行すると
type="email" の属性がなぜか自動で出力されている事が原因でした。
そこで�@を実行した時に type="email" が自動で吐き出されない様にするにはどうすれば良いでしょうか?
0906nobodyさん
2013/08/05(月) NY:AN:NY.ANID:???サンクス
取り敢えず type="email" の属性をブラウザがどうやら自動で判定し
余計なバリデーションを行っていた様です。
※最近のブラウザは結構おせっかいな事をしてくれますね。
0907nobodyさん
2013/08/05(月) NY:AN:NY.ANID:???レス数が900を超えています。1000を超えると表示できなくなるよ。