トップページ⇒php
1001コメント303KB

【PHP】フレームワーク CakePHP 10ホール目【v1.3】

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2010/11/01(月) 21:43:26ID:???
CakePHPは、Ruby on Railsの概念の多くを取り入れた、Rails流の高速開発とPHPの機動性を兼ね備えたフレームワークです
CakePHPから派生したLithium(li3)も専スレできるまではここでどうぞ
質問するときはCakePHPのバージョンを書きましょう

※sage推奨
※質問時もsageること
※他フレームワークとの比較等はスレ違いです
テンプレは>>1-5くらい

■本家
http://www.cakephp.org/
APIドキュメント
http://api.cakephp.org/
the Bakery
http://bakery.cakephp.org/
CakeQs
http://cakeqs.org/
CheatSheet (PDF)
http://cakephp.org/files/Resources/CakePHP-1.2-Cheatsheet.pdf
github - cakephp
http://github.com/cakephp

■日本語公式
http://cakephp.jp/
フォーラム
http://cakephp.jp/modules/newbb/
cookbook(マニュアル)
http://book.cakephp.org/ja
0511nobodyさん2010/12/28(火) 01:58:16ID:???
>>508
>>492 に、Lazy Loading 云々って書いてあるから、期待はしてる。
PHP5.2.6より上のバージョンに最適化するなら速度や何かはどうにかなってくれるといいな(願望)
0512nobodyさん2010/12/28(火) 02:55:16ID:???
>>509
せめてエラーの内容を書いてくれ。
初期化中になんかエラーになってるんじゃないの?
0513nobodyさん2010/12/28(火) 09:20:27ID:???
>>510
現状、おでこは狭いです。
10年後にはおでこと頭頂部が連結される見込みですが…

>>512
Fatal error: Class 'Sanitize' not found in viewのテンプレート on line 65
みたいな感じです。
レンダリングの段階で出てます。
0514nobodyさん2010/12/28(火) 12:31:58ID:???
viewの65行目に何書いてあるか書けよ
言われたことしかしないのか?
学校か?
死ねよ努力しろよ
0515nobodyさん2010/12/28(火) 13:48:07ID:???
>>509
とりあえず分からなかったらAppControllerの前にでも書いておいたらよい。
0516nobodyさん2010/12/28(火) 15:14:10ID:???
俺は使う直前でimportするようにしてる。
0517nobodyさん2010/12/29(水) 18:02:39ID:l8k3UmR3
教えてください。
cakephp 1.3 で、AuthComponents, AclComponents を使っているのですが、ログイン後に、
$this->set('user',$this->Auth->user());で、ユーザー情報は取れるのですが、
$this->set('group',$this->Auth->user('group'));
とやってもグループの情報が取れません。
Userのモデルには、
var $belongsTo = array(
'Group' => array(
'className' => 'Group',
'foreignKey' => 'group_id',
)
);

と記述しているのですが。

どうやったら、Groupのモデルが引っ張ってこれるのでしょうか。

0518nobodyさん2010/12/30(木) 12:51:41ID:???
カテゴリがあってそのサブカテゴリがあって、
サブカテゴリの詳細を出したい時、URLってどうしてます?

カテゴリ:/category/details/1  (CategoryコントローラーのID1の詳細)
サブ:/category/sub/1  (カテゴリID1内にあるサブカテゴリ一覧)
サブ詳細:/category/sub_details/1/1 (上記のサブカテゴリID1の詳細)

categoryというのがコントローラーで2つめがアクションです。
「カテゴリ内のサブカテゴリの詳細」を出す時、上記のようなURLにしているのですが、
いまいちURLが分かりづらくも感じてるので、他の人はどうしてるのか質問しました。
0519nobodyさん2010/12/30(木) 13:40:10ID:???
最近Cakeで作ったWEBサイトを携帯、もしくはIphoneやAndroidに対応したいのですが、
wordpressみたいにプラグインいれてハイ終わりって感じにはならないですよね。

トップページはフラッシュはないけど、動的にフォームを
追加、削除するjavascriptとかも入ってるし。
0520nobodyさん2010/12/30(木) 15:30:21ID:???
1.3.2使ってるんだけどApacheのエラーログ見たら
Fatal error: Call to a member function deleteAll() on a non-object in /apppath/cake/libs/cake_session.php on line 790
てのが出まくってるんだけど、これは何でどうしろってことなの?
0521nobodyさん2010/12/31(金) 01:11:49ID:???
CakePHPは何故失敗したのか
0522nobodyさん2010/12/31(金) 13:20:30ID:???
1.3.6のBakeってなんでVer下がってんだ
0523nobodyさん2011/01/01(土) 05:08:55ID:???
>>521
普及度では大成功だろ
PHPと同じで導入しやすいから普及してしまった
0524nobodyさん2011/01/01(土) 14:23:41ID:???
導入した俺は失敗だよ
バグあるし重いし、別のフレームワーク使って作り直さなきゃどうにもならん
0525nobodyさん2011/01/01(土) 16:13:29ID:???
CodeIgniterが気になって調べてたら殆どの人がcakephpに戻っててワロタ
0526nobodyさん2011/01/01(土) 16:59:33ID:???
Cakeには不満はあるが、他に選択肢がないって感じかな
0527nobodyさん2011/01/01(土) 18:01:25ID:???
俺としては「重い」と「ファイルが多い(FTPアップに時間がかかる)」
を改善してくれたら全く文句ない。
0528nobodyさん2011/01/01(土) 18:20:39ID:???
tarで固めちゃっターらいいよ
0529nobodyさん2011/01/01(土) 20:07:37ID:???
あああ
0530nobodyさん2011/01/01(土) 23:35:34ID:???
初笑いだ
0531nobodyさん2011/01/02(日) 00:46:25ID:???
普及してるか?
使ったことあるって人は多いだろうけど使い続けてる人が少ないような
0532nobodyさん2011/01/02(日) 15:48:13ID:???
なんで?FWに慣れたらやめづらいと思うが
0533nobodyさん2011/01/02(日) 16:07:37ID:???
>>521

>/apppath/cake/libs/cake_session.php on line 790

を見れば?
インスタンスされてない変数のメソッド呼び出し
05345332011/01/02(日) 16:09:32ID:???
>>520
の間違いだった orz...
0535nobodyさん2011/01/02(日) 17:10:40ID:???
そこはCakeの関数でしょ?
Cakeのバグってことだよね?
0536nobodyさん2011/01/04(火) 10:40:40ID:???
>>520
よく分からんけど、なんかそこで使われてる必要なモデルが無いんじゃないか?

>>519
プラグインってより、layoutの切り替えじゃないか?
スマートフォンも普通にhtmlを解釈するわけだし、
viewやelementを上手く作ってればlayoutの切り替えで何とかなるかもね。

>>518
URLが気に入らなかったらControllerで変な小細工するよりも、
Routesで対処する方がいいんじゃないか?

>>517
AuthComponent::user()の引数はフィールドの指定じゃないか?
ソースコード見てみたけど、アソシエーションを解釈してくれそうには見えない。
User belongsTo Group なら、$this->Auth->user('group_id')は出来そうだけど。
0537nobodyさん2011/01/04(火) 11:21:02ID:???
>>536
無いんじゃないか?って俺に言われても。
Cakeのセッション機能使っただけなんだが。Cakeが直せよ。

セッションまわりは他にも不具合があってかなり怪しい。APC入れたら動かなかったりとか。
0538nobodyさん2011/01/04(火) 11:27:39ID:???
いやそれは当然だと思うが・・・
セッション管理とキャッシュが食い合わせ悪いのはCakeに限らないだろ
0539nobodyさん2011/01/04(火) 11:39:09ID:???
>>537
それこそ俺にそう言われても。
1.3.2なんて古いの使って無いから790行目がどういうコードかわからんし、
どこでどんな原因があるのか分からんよ。
ただ、Coreのコード中でも、そこでModelのメソッドを呼んでるぽいから、
そのModel作り忘れとかもありえるんじゃないかと思っただけだ。
0540nobodyさん2011/01/04(火) 14:29:06ID:???
1.3系のAuthを使ったログインのサンプルって無いですかね?
cookbookを見ながらログインを作ったのですが、
なぜか、
ログイン時間が切れる→ログインフォームに戻る→再ログイン→エラー
になります。

エラー後に同じIDとパスワードでログインすると、ログインできるので
セッションエラーか何かだと思いますが、原因が掴めません。
0541nobodyさん2011/01/04(火) 20:12:48ID:???
cookbookのACLの開発例にログイン・ログアウトが含まれていたよ。
あれではだめですかね
0542nobodyさん2011/01/05(水) 03:42:32ID:???
cookbook面白いなーつい夢中になる
0543nobodyさん2011/01/06(木) 03:35:43ID:???
でもリンク切れが多い。>>541が言ってるACLの開発例もリンクおかしいし
0544nobodyさん2011/01/06(木) 04:44:02ID:???
リンク切れは、データベースのslugカラムがVARCHAR(45)で短すぎるかららしい。
一旦フッターのリンクから英語に移動して、見たいページ開いてから、
URLに自分で/jaを継ぎ足す事で見れる・・・
0545nobodyさん2011/01/06(木) 05:04:44ID:???
リンク切れているときはenのページを探してみて、jaへのリンクがあるか調べること多いですね

ところで、cookbookはcakephp製みたいですけど、ソース公開されてるんですか?見てみたい
0546nobodyさん2011/01/06(木) 06:47:11ID:???
https://github.com/cakephp/cookbook/

たぶんこれだと思うけど。
0547nobodyさん2011/01/06(木) 10:27:47ID:???
>>546
おお、ありがとうございます。
ローカルで動かしてみようといろいろやってますが、けっこう大変そう
入れろといわれたヘルパーは一通り用意しましたが、Zendのモジュールがどうとか
のエラーで心折れました
0548nobodyさん2011/01/06(木) 14:34:07ID:???
>>544
なるほどなー。ってそれがわかってるなら直してくれればいいのに。
0549nobodyさん2011/01/06(木) 14:42:37ID:???
そういうの多いよね。tinyint使っちゃ駄目とか。
0550nobodyさん2011/01/06(木) 15:06:26ID:???
つうかcakeのマニュアルにstringの時はvarchar(255)って自分で書いてるのにねw
0551nobodyさん2011/01/06(木) 17:17:19ID:???
CakePHPでPostgresって怖くて使えない。
そういう細かいはまり所がちらばってそうな気がしてなぁ。
海外じゃMySQLが主流だから、目玉の数も十分じゃないだろうし、
野良プラグイン使う事を考えるとなぁ。
Postgresのほうが好きなんだけど。
0552nobodyさん2011/01/07(金) 22:34:13ID:???
Web屋とかの制作実績見るとPostgresばっかりな気がする
MySQLのライセンスの問題?
0553nobodyさん2011/01/08(土) 01:34:02ID:???
Perlが主流の頃はPostgreSQLが主流だったんだよ
PHPが流行し始めてMySQLと組み合わせて解説本書かれるようになって10年くらいか?
今じゃすっかりPHP+MySQLが主流みたいになってるな
0554nobodyさん2011/01/09(日) 11:14:02ID:???
CakePHP以前の初歩かもしれないですが・・・、
たとえば「都道府県」→「市区町村」をフォーム上で両方ドロップダウンにして
都道府県で選択した値で市区町村を動的に変えようと思ったとき、
CakePHPならどういう方法をとるのが適切でしょうか?

ざっくりした処理の流れ程度でいいので、みなさんのやりかたをご教授
いただければありがたいです。
0555nobodyさん2011/01/09(日) 12:23:33ID:???
「CakePHPなら」ってのが良く分からない。
単にXHRで呼ばれるアクションを別に1個用意しましょう、ってんじゃ足りない?
それともJavaScriptが分かってない?
0556nobodyさん2011/01/09(日) 12:56:06ID:???
>>554
http://cakephp.jp/modules/newbb/viewtopic.php?topic_id=443&forum=12
0557nobodyさん2011/01/09(日) 20:56:38ID:???
book.cakephp.orgを見ながらcakephpの勉強をしているのだけど
バリデーションの定数(やエラーメッセージ)をどこかにまとめたい場合はどこにまとめるのが作法ですか?

http://book.cakephp.org/ja/view/150/
この「独自のバリデーションルール」だとマジックナンバーになってるけど、
実際の開発ではどういう方法があるかを知りたくて。

app/config/bootstrap.phpにまとめるものですか?
0558nobodyさん2011/01/10(月) 00:55:02ID:???
>>557
自分はvalidation.phpとか作ってConfigure::load()してる。
bootstrapにゴリゴリ設定詰めてもそりゃ動くけどね。
05595572011/01/10(月) 02:26:32ID:???
>>558
app/config/validation.phpにずらずら定数を書いておいて
app/models/<使いたいmodel>.phpの先頭でConfigure::load('validation');
という意味であってます?

bootstrapだとvalidation.phpが必要ないmodelでも読み込んじゃうから良くないという感じでしょうか?
0560nobodyさん2011/01/10(月) 04:57:04ID:???
app_model.phpじゃだめなん
0561nobodyさん2011/01/10(月) 12:16:49ID:???
>>559
bootstrapで常時読み込むよ。モデルごとに分けたりなんかしない。
配列の階層構造とかデフォルトのメッセージとかは面倒なのでビヘイビアで処理させてる。
0562nobodyさん2011/01/10(月) 12:31:41ID:???
bootstrapに全定数とかテーブルとか全部書くと便利だけど
全体の動作が重くならない?
0563nobodyさん2011/01/10(月) 13:51:26ID:???
>>562
プロファイリングすれば分かるけど250行ぐらいの設定ファイルで0.4msしかかかってないぐらいには軽い
0564nobodyさん2011/01/10(月) 14:10:59ID:???
0.4msってだいぶ重いんじゃね・・・?
05655632011/01/10(月) 15:22:42ID:???
どんだけシビアな世界に生きてるか知らんが1リクエスト100msかかってる環境でこれなんだ
がなー
これが重いと言われるとどうしようもない
0566nobodyさん2011/01/10(月) 17:30:16ID:???
CakePHPのApp::import()を1回分や、
無駄に発行するSQLの処理コストで吹き飛ぶ
誤差程度だと思うよ。0.4msなんて
bootstrapにある設定のコスト気にするより、
recursiveや取得するフィールドをきっちり調整した方がいいと思う。
0567nobodyさん2011/01/10(月) 17:45:15ID:???
久々にすごいハマってるんだけど知恵貸してくだしあ

Session.startは true
Security.levelは medium

のときに、
ログインページがSSLなんだけど、

非SSLページを遷移してる時は当然セッションIDのCookieは「あらゆる接続・・」で維持され読み取れるんだけど、
SSLのログインページを開いた時点で「セキュリティーで保護された接続・・」に限定されてしまい、
非SSLに移るとセッションは消えるという現象が起きまして。。

Security.levelが medium以下であればSSL・非SSLでのセッションは維持されるとあるのにおかしいなとソースを読みまくり、
一日かけてやっとたどり着いた原因が
SSLページでrequestActionしていると、セキュアのみのセッション(セッションID保存Cookie)に変更されてしまうというものでして、

で、回避するには、
Coreをいじるか、requestActionを使わないしかないように思うんですが、
同じような問題にぶち当たって解決された人いませんか?
05685572011/01/10(月) 20:13:38ID:???
おぉ。レスが増えてた。
>>560
モデルってわけでもないからapp_model.phpじゃないのかな?という疑問もあり質問して聞いてみたくて。
作法みたいなのがあればそれに倣おうと。
>>561
常時読み込んでも対して違わないんですね。参考になります。

app_model.phpかbootstrap.phpで常時読み込んでみてパフォーマンスが気になるレベルになったら次を考えてみます。
みなさんありがとうございます。
0569nobodyさん2011/01/10(月) 20:16:23ID:???
>recursiveや取得するフィールドをきっちり調整した方がいいと思う。

実際これってかなり大事だけど忘れがちだよね。
めんどくさいってのもあるもんな。
0570nobodyさん2011/01/10(月) 20:38:05ID:???
Containable使えばいい
0571nobodyさん2011/01/10(月) 20:39:10ID:???
LazyModelも忘れずにね。
0572nobodyさん2011/01/10(月) 21:33:48ID:???
567です。自己レスです。

どこかでparams['requested']を調べてSessionを開始しないようにすればいいと思いつつも
beforeFilterでは時既に遅し、__constructではparams[request]は取得できないとなやんだんですが、

http://cakephp.jp/modules/newbb/viewtopic.php?topic_id=1847&forum=8
こんなページを見つけて、ConstructClassesってメソッドを初めて知った。

ここに↓でどうやら意図したとおりに動いてる模様。
public function constructClasses(){
if(!empty($this->params['requested'])){
//Sessionを使わない
Configure::write('Session.start', false);
}
parent::constructClasses();
}

汚しましたーさーせん。
0573nobodyさん2011/01/12(水) 12:17:20ID:???
結構Cake使っているサイト増えたきたね。
会員数が数万単位でも違和感なく使える。
だから、Cakeが重いと感じるのは
ソースの書き方やキャッシュの使い方が悪いのかな・・。
0574nobodyさん2011/01/12(水) 16:36:48ID:???
コントローラからモデル名を取得しようとした時の方法が知りたいです。
cookbookには$this->ModelNameと書いてありますが実際にやってみるとそれでは取れず。
http://book.cakephp.org/ja/view/53

で、thisを覗いた所、
$this->modelNames[0]
$this->modelClass
の2つがあったのでどっちがいいのかなと思って気になりました。
0575nobodyさん2011/01/12(水) 16:38:52ID:???
$this->modelClass
0576nobodyさん2011/01/12(水) 18:08:05ID:???
Cakeって1モデル1コントローラーを前提としてるの?
そんな簡単にいくことってほとんどなくね?
0577nobodyさん2011/01/12(水) 18:29:16ID:???
そうか?半数以上は1モデル1コントローラーで問題ないよ。経験上。
複数モデル使うときは明示すればいいだけだし
0578nobodyさん2011/01/12(水) 22:06:01ID:???
俺の場合はほとんど、1コントローラー複数モデルだけど、
配列で複数指定できるんだし、全く問題ないぞ。
0579nobodyさん2011/01/12(水) 23:23:24ID:???
>>575
ありがとう。それでいきます
0580nobodyさん2011/01/13(木) 00:09:54ID:???
CakePHP:1.3.6
DB:Firebird 2.5

にて、下記を参考にBLOB型のカラムに画像を登録しようとしています。
http://c-brains.jp/blog/wsg/10/06/05-074544.php

viewとcontrollerのソースはこのサイトのままにmodelを自分で追加。
テーブルはcontentsカラムの型をBLOBに変更しています。
(Firebirdにmediumblob型が無いため)

この状態でファイルのアップロードをするとimages_controller.phpの33行目
$this->Image->save($image);
の実行時に下記エラーがでてしまいます。

Dynamic SQL Error SQL error code = -104 Unexpected end of command
SQL:INSERT INTO "image" ("filename","contents") VALUES ("filename.jpg","?????????")

※?????????は画像ファイルのバイナリの文字列(と思われる)が入っています。

contentsの登録部分(30行目)を削除すると成功するため、BLOB型の部分が
うまくいっていないのは確かだと思うのですが、どなたか解決策をご存知の方はいませんでしょうか。
0581nobodyさん2011/01/13(木) 01:29:47ID:???
ひとつ聞きたいんだが、他者のソースやプラグインを例題に出されたら
回答者がそれを設置してみないと答えられないんじゃないか?

そしてあんた、自分の中で答え出てるじゃん。BLOB型の部分がおかしいって。
それなら、元のソースに問題があるんだろ。作者に聞けよ。
0582nobodyさん2011/01/13(木) 12:11:03ID:???
その参考にしたサイトで使ってるのはMySQLかな?
よくわからんがMySQL以外のRDBMSをCakeのDataSourceとして使うには覚悟が必要だな
あとFirebirdは知らんけど画像はDBに格納するよりファイルとして保存するのが一番だな
0583nobodyさん2011/01/14(金) 14:38:02ID:???
ViewのテンプレートをデザイナーやPHPプログラマー以外に
触らせるのって無茶だと思うけど、どう思う?
0584nobodyさん2011/01/14(金) 14:39:20ID:???
>>583
どういうこと?営業とか?
0585nobodyさん2011/01/14(金) 14:45:30ID:???
>>584
いやそうじゃなくて、テンプレ内に専用コードが入って複雑にならない?
MVCの考え方から、Viewで処理する物はテンプレート内に書くけど
CakeのコードやらPHPのコードやら入るこむから
テンプレが複雑になって、Cakeに詳しくない人間は編集できないと思う。
0586nobodyさん2011/01/14(金) 14:45:56ID:???
ctpそのまま使うってこと?ありえないw
普通何らかのテンプレート使うだろ
0587nobodyさん2011/01/14(金) 14:47:37ID:???
そうなのか?Smartyを間に入れるとか?
あんたの言う「普通」ってはじめて聞いたな。
みんなctpに処理を書いていると思ってたよ。
0588nobodyさん2011/01/14(金) 14:51:43ID:???
ctpよりSmartyがいいときってどういう時?
Smarty使ってたら逆に複雑になると思うんだけど。
0589nobodyさん2011/01/14(金) 14:53:46ID:???
じゃ、「何らかのテンプレート」ってどういう意味?
0590nobodyさん2011/01/14(金) 15:00:10ID:???
扱うデータが多すぎて、1つのコントローラにモデル20個ぐらい使うんだけど
これって設計がおかしいのだろうか
しかしテーブル最適化するとそのくらいに増えてしまうのだよな…とにかくデータが多すぎて
1つのテーブルにまとめるとカラム数が凄いことになるし
0591nobodyさん2011/01/14(金) 15:00:20ID:???
なんにしても、デザイナーでもプログラマーでもない人間が
ビューを触るケースというのが想像できない
0592nobodyさん2011/01/14(金) 15:06:09ID:???
デザイナーがPHPわからないケースもあるんじゃない?
知り合いがデザイナーにctpいじらせて不具合起こされまくってた
0593nobodyさん2011/01/14(金) 15:06:11ID:???
>>583-589,591

運用スタッフにコンテンツを更新させるなら何らかのCMS的な仕組み作っとけ
0594nobodyさん2011/01/14(金) 15:08:37ID:???
文言変更や画像差し替えぐらいならそれでいけるけど
html編集まで必要だと厳しくないか?
0595nobodyさん2011/01/14(金) 15:29:30ID:???
Wordpressなんかのテンプレートぐらい作れる程度のPHPの知識がある
デザイナーはいっぱいいるとは思うけど、
でもcakeのviewファイル自体はプログラマーがいじるもんだと思ってる。
05965882011/01/14(金) 15:30:13ID:???
>>589
だからctpで十分じゃないかなって意味だった。
ウチで開発した時はコーダの作ったHTMLをテンプレートに当てはめる係がいたな。
その人はctpもHTMLやCSSやJavaScriptのコーディングもどっちも面倒見れる人
0597nobodyさん2011/01/14(金) 16:33:54ID:???
>>596
ああ、あんたは>>586じゃないんだな。それなら俺も同じ意見だな。
>>594
html編集が必要な場面って結構あるからな。
ページ内に説明文追加する時とか。追加じゃなくても変更とか。
その時、どうやったってctpを変更しなくちゃいけないけど、
CakeやPHPの知識がない人間が触るのは厳しい。
「あれ?そうすると、デザインとプログラムの分業って出来ないんじゃねぇ?」
って思ったんだよ。
0598nobodyさん2011/01/14(金) 16:52:49ID:???
やっぱ業務だと作業進行中にデザインの変更とか入ること多いの?
0599nobodyさん2011/01/14(金) 17:14:20ID:???
>>598
いざデザインを適用してみて動かしてみると色々変えたくなる
1枚ペラで見てたのとページ遷移した流れで見たデザインのイメージって結構違うものだなって感じる
0600nobodyさん2011/01/14(金) 17:26:57ID:???
フレームワーク使ってない時は、

DBからデータ取得→foreachで該当するデータを処理→ビューに出力

ってやってた。そうすれば極力、ビューにPHPのコードを書かなくて済むし。
でも二度手間だし、コントローラーでビューの内容を変更するのも違和感があって止めた。
0601nobodyさん2011/01/14(金) 17:49:38ID:???
何言いたいのかわからんけど
フレームワーク使ってるとそれと同じような事やってるじゃん
モデル、コントローラでぐるぐるデータ回して、
最後にビューでも回してるよ
0602nobodyさん2011/01/14(金) 18:02:52ID:???
>>601
説明不足ですまん。

$list = $this->Member->find('all');
$output_list = array();
foreach ($list as $i => $col) {
 $output_list[$i] = $col;
 $output_list[$i]['Member']['body'] = nl2br($col['Member']['body']);

 if ($col['Member']['image'] != "") {
  $output_list[$i]['Member']['image_url'] = Router::url('/img/') . $col['Member']['image'];
 }
}

みたいなことをコントローラーでやって、
ビューでは最小限のコードでforeachして出力するってこと。
0603nobodyさん2011/01/14(金) 19:00:07ID:???
すみません、CakeDCで公開してる、usersプラグイン使ってみた人いますか?
README見てもさっぱり使い方がわからない。
いい参考ページあったらおしえてください。。。
0604nobodyさん2011/01/14(金) 19:08:10ID:???
>>602
それちょっといじりたいときにコントローラ弄らなくちゃダメじゃない?って思ったら>>600に書いてあったw
フレームワーク使ってる場合はどっちみちビューでforeachするから$listの時点で十分扱いやすい形になってるなと思う
0605nobodyさん2011/01/14(金) 20:10:12ID:???
>>604
そもそもの話のネタが「デザイナーにテンプレいじらせるのって無理じゃない?」
って事だからね。ビューに手を加えるよりも、コントローラーに手を加える方が
プログラマーとしてはやりやすいし、デザイン変更も対応しやすいから。
ま、MVCに反するから今は>>602みたいに書いてないけどね。
0606nobodyさん2011/01/17(月) 11:39:15ID:???
お問い合わせフォームのメールアドレスに
空白入れて送信される場合があるんだけど、save前に

$this->data['Inquiry']['email'] = trim($this->data['Inquiry']['email']);

ってする以外にお手軽な方法無いですかね?
0607nobodyさん2011/01/17(月) 11:50:52ID:???
$('form').submit(
 function() { $('#email').val($.trim($('#email').val()); }
);

検証してないから動かなかったらごめんね
0608nobodyさん2011/01/17(月) 13:57:08ID:???
つまりjQueryで対処するんですね。
Cakeのモデル処理で出来るかな?と思ったのですが、
>>606みたいなやり方以外無さそうですね。
0609nobodyさん2011/01/17(月) 15:06:42ID:???
はぁ?
なんでバリデーションしないの?
アホなの?死ねよ屑が
0610nobodyさん2011/01/17(月) 15:24:13ID:???
酷い言われようでワロタww
■ このスレッドは過去ログ倉庫に格納されています