トップページ⇒php
985コメント270KB

【PHP】フレームワーク CakePHP 15ホール目【v2.2】

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001nobodyさん2012/12/04(火) 13:06:36.87ID:ExCLhBiP
CakePHPは、Ruby on Railsの概念の多くを取り入れた、Rails流の高速開発とPHPの機動性を兼ね備えたフレームワークです
CakePHPから派生した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/
0893nobodyさん2013/08/05(月) NY:AN:NY.ANID:???
客観的に何も知らない第三者が読んだ時に理解できる文章になてるか読みなおして十分な説明をしろ
>>892の最後の段落とかわけわからん
08948802013/08/05(月) NY:AN:NY.ANID:???
日本語もおかしかったですね、すみません!
0895nobodyさん2013/08/05(月) NY:AN:NY.ANID:???
>>892
>ちなみにやりたかったのは複数レコードの挿入で、

なんでそれを解決してから書くの?
なんで先に書かないの?
08968802013/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:???
バリューで自動判別させるhelper
08998802013/08/05(月) NY:AN:NY.ANID:???
>898
なるほど、helperを自分で作るか改造するかってことですね
ありがとうございます

>897
いろいろと参考になったので消えときます!
0900nobodyさん2013/08/05(月) NY:AN:NY.ANID:n+BD/Kj+
cakePHP2の最新版でのバリデーションの
不可解な動きに困っています。ユーザ認証用に作成した 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:???
え?
登録時じゃなくてログインのこと?
09029002013/08/05(月) NY:AN:NY.ANID:???
ログイン時の認証についてです。
emailのバリデーションをどうしても外す事が出来ません。
0903nobodyさん2013/08/05(月) NY:AN:NY.ANID:???
emailのバリデーション部分をコメントアウトしてみたのですが
それでもやはりバリデーションが掛かっている様です。。。

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:???
$this->Form->input('email', Array('label' => false,'style' => 'width:150px;'));
・・・�@

を実行すると

type="email" の属性がなぜか自動で出力されている事が原因でした。

そこで�@を実行した時に type="email" が自動で吐き出されない様にするにはどうすれば良いでしょうか?
0906nobodyさん2013/08/05(月) NY:AN:NY.ANID:???
>>904
サンクス

取り敢えず type="email" の属性をブラウザがどうやら自動で判定し
余計なバリデーションを行っていた様です。
※最近のブラウザは結構おせっかいな事をしてくれますね。
0907nobodyさん2013/08/05(月) NY:AN:NY.ANID:???
第二引数に "type" => "text" を入れて、型を明示したらいいんじゃね?
0908nobodyさん2013/08/05(月) NY:AN:NY.ANID:???
>>907
ありがとうございます。
そんな指定方法もあったのですね。
勉強になります。
0909nobodyさん2013/08/05(月) NY:AN:NY.ANID:???
マニュアルとAPI読んでから質問しろよクソども
http://api.cakephp.org/2.3/
0910nobodyさん2013/08/05(月) NY:AN:NY.ANID:???
全くだ、

>そんな指定方法もあったのですね。

じゃねーーーーよ!

>>872 のこの記事、ジワジワ来るわ

今すぐ辞めて欲しい、「Ruby on Rails勉強してます」「CakePHP勉強してます」 | つい全力ツッコミしてしまうエンジニアCEOのブログ | sumyapp
http://blog.sumyapp.com/2013/07/no-recommend-rails/
0911nobodyさん2013/08/05(月) NY:AN:NY.ANID:???
ブラウザがバリデーションしてくれんの?エクスプローラ?
0912nobodyさん2013/08/05(月) NY:AN:NY.ANID:???
モダンブラウザならたいていそうなってるよ
HTML5の仕様に含まれてる
0913nobodyさん2013/08/05(月) NY:AN:NY.ANID:???
ほうー試してみる
0914nobodyさん2013/08/06(火) NY:AN:NY.ANID:???
念のため書いておくけど、Cakeのほうでもバリデーションしておけよ。
ブラウザのバリデーションは利便性の為のもので、ちょっと手を入れればスルーできるからな。
0915nobodyさん2013/08/06(火) NY:AN:NY.ANID:???
規制解除テスト
0916nobodyさん2013/08/06(火) NY:AN:NY.ANID:g0SrcHvj
cake初めて少し経つんだけど
日記とかでもし同じadd.ctpに2つのpostボタンとかあったらどうやって処理わけるんですか?
function add(){
ポストしたときの処理
}
で書いてます
0917nobodyさん2013/08/06(火) NY:AN:NY.ANID:???
>で書いてます
そうですか。続けてください。
0918nobodyさん2013/08/06(火) NY:AN:NY.ANID:???
最近 >>916 みたいなの増えてんのか?
素のスクリプトちゃんと書けるようになってから使え
0919nobodyさん2013/08/06(火) NY:AN:NY.ANID:???
飛び先を変えたいってことならJS
同じとこ飛ばして処理をわけるならフラグをhiddenで埋め込むとか
0920nobodyさん2013/08/06(火) NY:AN:NY.ANID:???
>>919
馬鹿は答えなくていいぞ
複数のボタンを設置してどちらを押されたかをコントローラーで判別するってことだろ
「で書いてます」辺り意味不明だけど
submitにnameで値もたせたらコントローラーから取れるから
debug($this->request)とかでどこに入ってるか確認してみろ
0921nobodyさん2013/08/06(火) NY:AN:NY.ANID:g0SrcHvj
飛び先を変えたいというよりか
同じfunction内でどうやって2つのPOSTを区別して処理するか
が質問です
>>920のやり方でやってみます
0922nobodyさん2013/08/06(火) NY:AN:NY.ANID:???
だからそれ、CakePHP以前の問題だからw
素の書き方がわかってないのが丸わかり
0923nobodyさん2013/08/06(火) NY:AN:NY.ANID:kElqUIof
>>920
まじでか、知らんかった
あとで見てみよう

ちなみに飛び先(URL)変えるのはを変えるのはさすがにJSじゃないと無理だよね?
0924nobodyさん2013/08/07(水) NY:AN:NY.ANID:???
今更だけど、テンプレのリンクに変なの混ざってるな
なんなんだアレは
0925nobodyさん2013/08/07(水) NY:AN:NY.ANID:???
CakeQs これか
なんだこれ
0926nobodyさん2013/08/08(木) NY:AN:NY.ANID:9qCFded1
ログインなしでもありでも見れるトップページで

ログインありだと表示したいボタンがありログインなしだと登録ボタンを見せたいんですけど
ログインしてるかしてないかを判定したいんだけどどうすればいいんですか?
0927nobodyさん2013/08/08(木) NY:AN:NY.ANID:???
マニュアルのAuthの項目やApiでAuthと名のつくものの項目全部読んで
0928nobodyさん2013/08/08(木) NY:AN:NY.ANID:???
ボタンを両方表示して、ログイン済みの方のみ押してくださいの注意書きをする
0929nobodyさん2013/08/08(木) NY:AN:NY.ANID:???
echo '「ログインしていない人は手で覆って下さい」';
0930nobodyさん2013/08/11(日) NY:AN:NY.ANID:2Jj9WN6c
cakePHPでメールを送るプログラムを作っています。
そこで質問があります。

$message = "aaa"."\t"."bbb";

としてメールを送ったところ

"aaa" と "bbb" はタブ文字で区切られていると思ったのですが
実際にメールを送信してみると、タブでは無くスペースになっていました。

なぜ、タブ文字を指定しているのにメールを送信すると
スペースに置換されてしまっているのでしょうか?
0931nobodyさん2013/08/11(日) NY:AN:NY.ANID:???
質問が分かりにくい
0932nobodyさん2013/08/11(日) NY:AN:NY.ANID:2Jj9WN6c
つまりなんでタブ文字を含んだ変数を
メールで送信すると
タブがメール本文に含まれずスペースとして
送られるのでしょうか?
0933nobodyさん2013/08/12(月) NY:AN:NY.ANID:???
どこかで変わってるんだから、もう少し頑張って追跡してみようぜ。
ソースは全部手中にあるんだから。
デバッグというのは実に地道な作業なんだよ。
0934nobodyさん2013/08/12(月) NY:AN:NY.ANID:???
そんなことしないから知らないが、
エラー無くそうなったのなら、そういうものなんだろう。
終わり。
0935nobodyさん2013/08/12(月) NY:AN:NY.ANID:???
メーラーによってはタブが無視される対策なのか?知らんけど
0936nobodyさん2013/08/12(月) NY:AN:NY.ANID:???
コントローラのコンストラクタの中でコンポーネントの関数を呼ぶ方法はないでしょうか?

ちなみに呼びたいコンポーネントの関数はスタティックメソッドなので、そのコンポーネントを初期化する必要はなく、ただ関数呼びたいだけ
だけどApp::Usesとかrequire_onceとかやっても、何故か呼び出しできません
どこかに例があったら教えてください
必要ならサンプルコードうpします(読んでくれる親切な人がいるなら)
0937nobodyさん2013/08/12(月) NY:AN:NY.ANID:???
たしか
componentsにセットされていれば
$this->ComponentName;ってやって初めて初期化し始めるはずだからコンストラクタ内で
↑これしたら使えない?
0938nobodyさん2013/08/12(月) NY:AN:NY.ANID:LSkO70Rp
中国人とは違って台湾人はいいね!

尖閣どこ吹く風、日本が依然として首位 台湾の「最も好きな国」

 【台北=吉村剛史】台湾における「最も好きな国・地域」で「日本」が
43%の支持を集めてトップを維持し、2位の米国、中国、シンガポール
(各7%)から依然突出していることが2012年度対日世論調査で分かった。
尖閣諸島(沖縄県石垣市)の領有権を主張する中国との関係が冷却化する中、
同じように領有権を唱える台湾での根強い日本人気を裏付けた。

 調査は日本の対台湾窓口機関、交流協会台北事務所(大使館に相当)が
外部機関に委託し、台湾の20〜80歳の男女1千人余を対象に今年1月に
実施した。

 尖閣周辺で台湾漁船の操業を認めた日台漁業取り決め調印(4月)前の調査
だが、日本は昨年度より2ポイントアップ、米中は1ポイント下げた。年代別
では20代の54%、30代の50%が日本を支持し、高齢者より若者の親日
感情の強さが際立った。

「行きたい海外旅行先」も日本が首位(38%)だった。
0939nobodyさん2013/08/12(月) NY:AN:NY.ANID:???
>>936
App::uses の設定が間違っている以外に考えられない
設置してる場所、ファイル名、クラス名とApp::uses()のパラメータを書いてみ

ちなみにオンザフライでインスタンス生成する場合は ComponentCollection::load() メソッド
0940nobodyさん2013/08/14(水) NY:AN:NY.ANID:JcfSCVXQ
祝日のPHPとかどんだけおたく?
0941nobodyさん2013/08/27(火) NY:AN:NY.ANID:???
ルートをwebroot内に置いたindex.htmlにしたいのですがどうしたらいいんでしょうか
0942nobodyさん2013/08/28(水) NY:AN:NY.ANID:???
え?
ルートじゃなくて、デフォルトドキュメントのこと?
0943nobodyさん2013/09/02(月) 17:13:35.20ID:???
cssとかjavascriptのファイル名ってどうしてます?
コントローラに合わせてcategories.cssにするか
モデルに合わせてcategory.cssにするかで悩みます
0944nobodyさん2013/09/02(月) 17:22:43.46ID:???
悩みぬいて禿げろ
0945nobodyさん2013/09/02(月) 22:00:56.53ID:???
テスト時に実行したくない(本番用DBに繋がってないとエラーになる)コードがあるので、
if ( テスト実行中ではない ){
該当コード
}
とやりたいんだけど、テスト中かどうかを知るにはどうすればいいのでしょうか
Cake2です
0946nobodyさん2013/09/02(月) 22:18:18.62ID:???
cakephp debug で検索
これ以上聞くな
0947nobodyさん2013/09/03(火) 01:20:44.38ID:???
普通にソースの共通化をしろ、データはさておきローカルで同じDB作れ
0948nobodyさん2013/09/03(火) 02:15:37.83ID:???
悩みぬいて禿げろいいな。
俺も今度使うわw
0949nobodyさん2013/09/03(火) 05:55:54.21ID:???
>>946
解決しませんでした

>>947
無理

ていうか、やはりここで聞いてもわかる人はいないか
0950nobodyさん2013/09/03(火) 07:12:38.51ID:???
>>949
無理じゃねーよ
ローカルで本番と同じ構造のDB用意するだけだろ
それできないなら、本番用になんか作るのやめろ危なくてしょうがねーよ
0951nobodyさん2013/09/03(火) 07:17:15.20ID:???
>>950
説明不足ごめん、他にも理由があるんでそれだけじゃ解決しないです
契約上本番鯖からしかアクセスできないAPIとか
0952nobodyさん2013/09/03(火) 07:29:49.41ID:???
SERVER_NAMEで切り分けろよ低能
0953nobodyさん2013/09/03(火) 07:31:52.71ID:???
>>951
ただ実行したくねーなら、フレームワーク以前の普通のphpでSERVER_NAMEでも見れば良いんじゃないですかね(鼻くそほじりながら
お前がテストしてないものを客にお出しするクズなのはわかった
0954nobodyさん2013/09/03(火) 07:36:34.30ID:???
cakephpはrailsより早いですか
0955nobodyさん2013/09/03(火) 07:38:35.43ID:???
datasource取得して中身見ればいいじゃん
0956nobodyさん2013/09/03(火) 08:00:33.79ID:???
> お前がテストしてないものを客にお出しするクズなのはわかった
は?
0957nobodyさん2013/09/03(火) 08:04:01.66ID:???
>>956
くずと言われても仕方ないな
0958nobodyさん2013/09/03(火) 08:34:08.17ID:???
このスレにはクズしかいませんよ、前から
0959nobodyさん2013/09/03(火) 12:08:56.22ID:???
別にそんな難しく考えずにConfigureで適当に設定して
それを読み取ったら良いだけではないの?
0960nobodyさん2013/09/03(火) 12:42:43.81ID:???
configureの使い方分からないんじゃないのか?
0961nobodyさん2013/09/03(火) 12:54:12.78ID:???
>>951
その契約が無理だね。
規模にもよるけど、本番鯖、ステージング鯖、開発鯖は必要だろう。
ステージングを省略したとしても、本番と開発の2台は必要だと思うよ。
開発中はまだしも、本番稼動後に保守していくには、ね。

で、どんな契約でどんなAPIかしらんけど、
どうやって1台に限定してんの?
鯖のIPでも見てんの?
0962nobodyさん2013/09/03(火) 13:16:10.41ID:???
これ以上突っ込んでも誰も得しないよ
そもそも質問自体スレチだし
0963nobodyさん2013/09/03(火) 13:17:11.55ID:???
質問自体→質問内容自体
0964nobodyさん2013/09/03(火) 14:54:13.59ID:???
レスくれた方あざっす
もちろんPHPの環境変数やConfigureでどうにでもできることではありますが
何かCakeで用意されているものがあったら、それを使いたかったので聞いてみた
なさそうなので自分でなんとかします

簡潔にするため質問の情報絞りすぎて、誤解も招いたみたいで申し訳ないっす

>鯖のIPでも見てんの?
です

以上、この件終わり
0965nobodyさん2013/09/03(火) 14:56:26.35ID:???
うっせえぼけ消えろしね
0966nobodyさん2013/09/03(火) 15:26:12.56ID:???
以上、この件終わり
0967nobodyさん2013/09/04(水) 00:03:53.37ID:x8ABZTtP
2.4の正式版がリリースされ、いよいよCake3のベータ版公開の噂も聞こえてきました。
Cake3では動作環境もPHP5.3から5.4へ見直される模様。
[]を使った配列構文やトレイトなどのPHPの最新機能は勿論のこと、
待望のモデルデータのオブジェクト返しやメソッドチェーン、
さらにはクエリビルダの搭載など新機能が目白押し!

そんな期待高まる今日このごろですが、未だにCake1.3系の保守を日々してるかわいそうな皆様(私も含む)に
温かい声援をお送りします
0968nobodyさん2013/09/04(水) 09:49:51.17ID:???
コンソールからの実行で、プラグインが読み込めないのかエラーが起こります。
ただ、コントローラーからの処理だと処理ができるんですが
これはプラグインのエラーなのでしょうか?
0969nobodyさん2013/09/04(水) 11:02:50.64ID:???
エラーの原因を探りたいのにエラー文も貼らないあんぽんたん
0970nobodyさん2013/09/04(水) 11:53:50.04ID:???
以上、この件終わり
0971nobodyさん2013/09/04(水) 12:48:23.92ID:x8ABZTtP
来年はCake3か
0972nobodyさん2013/09/04(水) 13:48:00.91ID:???
来年までに1.3がなくなるといいね
0973nobodyさん2013/09/05(木) 18:33:57.34ID:???
PHPUnitで、Controllerの中でcodeCoverageIgnoreが使えない。
書いても無視されてる感じ。使えてる人いる?
0974nobodyさん2013/09/05(木) 20:14:35.23ID:???
使えないの?
メソッドでの指定だよね?
あとで試してみるわ
0975nobodyさん2013/09/06(金) 10:32:20.08ID:???
つーかCakeでテスト書くの大変だよな…
いろいろエラーが出て、テストを動かすまでが一苦労
コントローラとか複雑なことやってるから致し方ないけども
0976nobodyさん2013/09/06(金) 14:00:00.91ID:???
>>967
マジで5.3捨てるのかよ
PHP4のサポートを売りにしていた時代があったのに信じられない
5.4なんて、たかだか1年半前くらいに出たばかりなのに。
0977nobodyさん2013/09/06(金) 14:45:37.45ID:???
5.3は、現時点で既にサポート終了してるからな
0978nobodyさん2013/09/06(金) 19:38:47.77ID:UjaqdCZf
  ★★★二度と戦争をしない為に最も確実な方法は、日本が核を持つことである★★★
  http://jbbs.livedoor.jp/study/3729/storage/1069408696.html#82

――この掲示板に優秀な書き込みをして、総額100万円の賞金をゲットしよう!(*^^)v――
0979nobodyさん2013/09/07(土) 08:35:20.99ID:???
CakePHPの質問はどこに書けばいいんだ…
ここに書いても、ぐぐって出てきたフォーラムに書いても、StackOverflowに書いてもレスが付かない…
そんなに誰も使ってないのか?
0980nobodyさん2013/09/07(土) 09:53:08.18ID:8LXJBZl/
>>979
何番の質問だよ?本当に良い質問してるか?
0981nobodyさん2013/09/07(土) 10:00:03.01ID:???
フォーラム見たけど、大体レスついてるじゃん
0982nobodyさん2013/09/07(土) 10:49:24.78ID:???
>ここに書いても、ぐぐって出てきたフォーラムに書いても、StackOverflowに書いてもレスが付かない…
なぜ自分の質問に問題があると気づかない
0983nobodyさん2013/09/07(土) 11:42:07.29ID:???
StackOverflow のレスポンス率は激高だろ
0984nobodyさん2013/09/07(土) 17:20:39.72ID:???
あそこは付く時は5分でレスが付いてすげーと思うけど
1時間経っても付かなかったらもう一生付かない、流れが速すぎる
0985nobodyさん2013/09/07(土) 17:23:41.04ID:???
いますごいレスついてるじゃん、やったじゃん
レス数が950を超えています。1000を超えると書き込みができなくなります。