【PHP】フレームワーク CakePHP 5ホール目【v1.2】
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001nobodyさん
2008/12/19(金) 15:52:19ID:ylogT+7chttp://www.cakephp.org/
APIドキュメント
http://api.cakephp.org/
cookbook(マニュアル)
http://book.cakephp.org/ja
the Bakery
http://bakery.cakephp.org/
■日本語フォーラム
http://cakephp.jp/
■過去スレ
【PHP】フレームワーク CakePHP 4ホール目【v1.2】
http://pc11.2ch.net/test/read.cgi/php/1213892680/
【PHP】フレームワーク CakePHP 3ホール目【本命】
http://pc11.2ch.net/test/read.cgi/php/1205475360/
【PHP】フレームワーク CakePHP 2ホール目
http://pc11.2ch.net/test/read.cgi/php/1194976228/
【PHP】フレームワーク CakePHP
http://pc11.2ch.net/test/read.cgi/php/1163850802/
0866nobodyさん
2009/02/22(日) 15:38:22ID:n5m/3HJ0railsの方が断然はやいよ。測定するまでもない。数倍違うから体感できる。
0867nobodyさん
2009/02/22(日) 16:08:49ID:???よく分かってないけどDBの文字コードは変えられないという仮定で。
一般的には、beforeSaveとafterFindで変換だけど、それじゃだめってこと?
0869nobodyさん
2009/02/22(日) 19:20:17ID:mjuU1FsC$useTable = false;
しても、バリデーションしようとするとDBエラーが出るよ・・・(;´Д`)
0870nobodyさん
2009/02/22(日) 19:27:43ID:???0871nobodyさん
2009/02/22(日) 19:32:35ID:???http://cakephp.jp/modules/newbb/viewtopic.php?post_id=2771&topic_id=1317&forum=6
柔軟性のないFWだなあ…
0872nobodyさん
2009/02/22(日) 19:56:41ID:???0873nobodyさん
2009/02/22(日) 20:31:34ID:???モデルでやったほうがいいのかね?
コントローラー?
0875nobodyさん
2009/02/22(日) 21:09:32ID:???どちらがベターかと言えばModelだろうねえ
Controller(やComponent)でやるほうが簡単だったりするがMVC的にM
でもオレオレ解は、確認画面つくらないなら、Javascriptでやる
0877nobodyさん
2009/02/23(月) 04:12:40ID:???モデルに一票。trimビヘイビア作るのもいいかもしれない。
ところで 自分は euc-jp で何度も痛い目あってutf-8オンリーでここ数年プログラムやってるけど
euc-jp で組んでる人ってなぜeucなの?
0878nobodyさん
2009/02/23(月) 07:01:24ID:???今まで(今でも)euc-jpで書かれたベタのPHPアプリが多く、php.iniがeuc-jpになって
いて変更出来ない。utf-8用サーバをもう一つ立てる事は費用対効果が許してくれない。
みんなPHPからCakePHPへ移行するのを面倒がる。メンテが主で、新規は少ないんだから
PHPのままでいいんじゃんとみんな消極的。(Cakeで作ったものを見ると、やっぱFWは
良いねえとは言うけど)
0879nobodyさん
2009/02/23(月) 07:58:49ID:???ttp://cakephp.jp/modules/newbb/
0880nobodyさん
2009/02/23(月) 07:59:36ID:???0882nobodyさん
2009/02/23(月) 09:10:43ID:???0883nobodyさん
2009/02/23(月) 09:26:12ID:???対応したエンジニアが居れば良いだけ
0884nobodyさん
2009/02/23(月) 09:41:24ID:???0887nobodyさん
2009/02/23(月) 17:39:27ID:???非常に強力でありがたいが。関連が複雑になる(数が増える)と
hasOneやbelongToなどがどこまでデータを持ってくるのか、
未だに把握できてない。
簡潔明瞭に説明してくれてる所はないものか。
0888nobodyさん
2009/02/23(月) 18:58:53ID:???テーブルにfirst_nameとlast_nameというカラムがある場合、この二つを結合した値をセレクトボックスのラベルとして表示したい時はcombineを使うしかないんですかね?
railsだともっと簡単にできるんでしょうか・・・。
0891nobodyさん
2009/02/23(月) 20:15:25ID:???この時PHPのプログラムはコントローラに当てはまるんですかね?
また、どのディレクトリに置けばいいんでしょうか?
0892nobodyさん
2009/02/23(月) 21:32:43ID:???参照する時って、addressモデルにアソシエーションが書いてあれば、
prefectureモデル(model/prefecture.php)って作らなくても大丈夫?
0893nobodyさん
2009/02/24(火) 00:07:55ID:???cakeのアクションとして呼び出すならコントローラだし、
cakeと全然関係ないならvendorsとかにいれとけばいいのでは。
0896nobodyさん
2009/02/24(火) 08:00:04ID:???0898nobodyさん
2009/02/24(火) 08:50:43ID:???loginした時間をデータベースのusersに記録したいのですが、
その処理はどこに書いたらいいんでしょう?
usersのloginアクションは認証前には来るけど、
認証が成功するとそれぞれのページに飛んでしまう。
login成功後(だけ)に処理させてくれる場所が分からない。
0900nobodyさん
2009/02/24(火) 10:03:12ID:???0902nobodyさん
2009/02/24(火) 12:21:07ID:???0903nobodyさん
2009/02/24(火) 14:37:24ID:???function beforeFind($qd) {
$qd['conditions'] = 'delete_flag = 0';
return $qd;
}
こうすると、delete_flagが0の物しかfindされません。
普段はこれで良いのですが、まれにdelete_flag =1
のデータも検索したい時には、どうしたら良いでしょう?
0905nobodyさん
2009/02/24(火) 15:55:29ID:???有効のようですね。ありがとうございます。やってみます。
やりはじめたのですが。なんとなく、設定を解除しながら
使うよりも、そのつど設定した方が簡単なような気がして
きました。
どこにどのように設定されているか確認しながら解除する
必要があるため、厳密にやるとちょっと面倒。
0906nobodyさん
2009/02/24(火) 17:53:07ID:???0907nobodyさん
2009/02/24(火) 17:54:24ID:???0909nobodyさん
2009/02/25(水) 09:37:56ID:???action属性が付かなくするにはどうすればいいですか?
0911nobodyさん
2009/02/25(水) 09:50:02ID:???書くのが基本なんだろうけど、ユーザーがブラウザ
から変更できると良いこともあるので、どこかに
設定ファイルを持ちたいのだけれど。
どこに、どういう形で置くと、無駄が少ないだろう?
データベース?に配列ごとぶち込む?
設定ファイルに書くとしたらどこに、どんなふうに?
Cake流のやり方とかありますか?
0913nobodyさん
2009/02/25(水) 10:39:26ID:BZ8YN1wt(←は多対1)
みたいなモデル構成のときに、$this->A->find()
する場合に、Cのカラムで検索条件を指定するのって
どうすればよいのでしょうか。
find時のrecursiveは2にしていますが、どうもうまく出来ません。
デバッグ情報を見てみると、
A←BのJOINしかしていないように見えるんですが。。。
0914nobodyさん
2009/02/25(水) 12:10:26ID:???そうだよね・・・。ありがとう。
データベースに入れると、処理が無駄っぽいかな。
外部の設定ファイルって、どこに置くのが安全で便利?
0915nobodyさん
2009/02/25(水) 13:32:40ID:???みなさんどのようにしてますか?
辿ってきたcontroller名からviewを切り替えてますが、
他に良い方法ありますか?
0916nobodyさん
2009/02/25(水) 13:57:01ID:???うーん、消えませんでした。
array('default'=>false)でsubmitはしなくなるようですが。
ヘルパー使わずに直接記述すると何かデメリットありますか?
0920nobodyさん
2009/02/25(水) 14:43:45ID:???http://cakephp.jp/modules/newbb/viewtopic.php?topic_id=1779&forum=9&viewmode=flat&order=ASC&start=0
...orz
0921nobodyさん
2009/02/25(水) 14:58:32ID:???親になるモデルからクエリキャッシュしながらキーを取ってきて、
動的に扱う子のモデルにキーを渡した方が良いと思うのだが…。
0922nobodyさん
2009/02/25(水) 15:48:03ID:???0923nobodyさん
2009/02/25(水) 18:27:28ID:???Configure::load の説明だと思うのですが。
あれだとスタティックな設定の読み込みですよね?
変更するには、直接ファイルの書き替えが必要なのでは?
できれば、(あの例なら)sloganをアプリの中から、
書き替えたいのです。
Configure::writeしたものって、どこに保存されてるんでしょう?
ちょっとコントローラに書き込み/読み込みするものを書いて
みたのですが。
直後にConfigure::readすると出てくるけど、コントローラを
再読み込みすると消えてしまう。
0925nobodyさん
2009/02/25(水) 22:27:20ID:???逆に考えるんだ。jojo
B belongsTo C
B hasMany A
app/model/a.php
<?php
class A extends AppModel {
$var $hasMany = array('B' => array('className' => 'B'));
function useConditionForC($id) {
$conditions = array('A.id' => $id, 'C.foo' => 'hoge');
return $this->B->find('all', array('conditions' => $conditions));
}
}
?>
app/controller/as_controller.php
<?php
class AsController extends AppController {
function index($id) {
$this->set('data', $this->A->useConditionForC($id));
}
}
?>
0926nobodyさん
2009/02/25(水) 22:28:49ID:???0927nobodyさん
2009/02/25(水) 23:17:48ID:???(ちょっと複雑な検索は普通にゴリゴリSQL書いてたw)
0928nobodyさん
2009/02/26(木) 10:33:25ID:???昨日から格闘してるけど、なかなか思い通りにならないorz
0930nobodyさん
2009/02/26(木) 12:00:53ID:???ユーザーが書き換え可能な設定って、
どこに書いて、どう保存するのがいいの?
0931nobodyさん
2009/02/26(木) 12:06:49ID:???もうちょっと具体的に書いてくれないと分からないんだよね
ユーザーが書き換え可能な設定って何?(ユーザーって誰?アクセスする人全員?ユーザー登録した人?管理者?)
0932nobodyさん
2009/02/26(木) 13:00:29ID:???店長が、店名や電話番号、スローガンを書き替えたりする感じ。
店名とかの情報は、他の店員などのユーザーが共通して引用する。
店長が/app/config/のファイルを直接編集すれば、アプリとしては
何もしなくていいので楽だけど・・・できれば、してもらいたくない。
というか、/app以下に、アプリ以外の情報は入れたくないんだった。
(アプリのバージョンアップは、/appの入れ替えで考えてる)
そうすると、Configure::loadもダメじゃん orz
やっぱ、データベースに入れるか。
bootstrap.phpからモデルにアクセスできるっけ?
0933nobodyさん
2009/02/26(木) 13:38:44ID:???1app=1店舗 という理解でよいのかな?
だとすると、個人的な意見としては、DBに保存するのが、Cake的に楽だと思う。
0935nobodyさん
2009/02/26(木) 14:24:14ID:???>1app=1店舗
そうです。
DBに入れるのが楽ですか。
>>934
DBからデータを読み出すのは、bootstrapじゃなくて、
app_controllerからってことでしょうか?
confモデルとかを、app_controllerで、App::importで
インスタンスにして読み出して、$Controller::set()で
適当な変数(例えば、$this->data['confs'])にセット
して(viewに渡して)おけば、どこからでも使える?
あ。なんとなくダメっぽい気がする。
0937nobodyさん
2009/02/26(木) 14:35:36ID:???# app_controller.php
# beforeFilter() or beforeRender()
$this->set('shop' ,$shop = $this->Shop->find('first' ,$options));
0938nobodyさん
2009/02/26(木) 14:38:58ID:???マニュアルには出てないからAPIの方を見てください。
0940nobodyさん
2009/02/26(木) 15:04:17ID:???Configure::loadとConfigure::storeのパスを
app/config以外に変更できればいいのですが。
0941nobodyさん
2009/02/26(木) 15:14:22ID:???とかなら可能だけど・・・あんまりお勧めできないわな。
0942nobodyさん
2009/02/26(木) 15:56:30ID:???の258に出てた。
>・Configure::store('AAA', 'a', array('data'=>'123'));で値保存。
> /app/temp/cache/persistent/a.php ができる。
> Configure::load('a'); でa.phpファイル読み込み
> pr(Configure::read('AAA')); で保存した値表示。
確かに、その場所に保存されてた。うーむ。
0943938
2009/02/26(木) 16:01:56ID:???じゃあ設定自体はDBに入れといて、
storeしておけばどこからでもConfigure::readで使えるってぐらいかな。
0944nobodyさん
2009/02/26(木) 17:11:49ID:???なるほどね。expiresが長いけど、cacheファイルが無くなる可能性を考えると
bootstrapでConfigure::loadして、読み込めなかったらapp_controller等でfind & Configure::store
あとは、afterSaveでConfigure::storeする感じか
0945nobodyさん
2009/02/26(木) 18:02:14ID:/EQHTY5Kアソシエーションされたモデルのビヘイビアって動作しないのでしょうか?
何か動作させる方法があれば教えてください。
ModelAに
hasMany=>ModelB
とあるとして、
ModelA,ModelB両方にactsAsで同一ビヘイビアを呼び出している場合、
ModelA->find等とした場合に、ModelAはビヘイビアが効いていますが
ModelBには効きません。
これは正常動作ですか?何とか回避する方法はありますでしょうか?
0947nobodyさん
2009/02/26(木) 18:22:59ID:/EQHTY5K自作してる途中に気付きまして。
ビヘイビア側で対応する必要があるんですかね??
ただ、ちょっと今配布物みてそれがきちっと動くなら参考に・・と思って
AttributeBehavior
http://bakery.cakephp.org/articles/view/attributebehavior-dry-and-powerful
これやってみたんですが、
やはりアソシ先には効いてないですね。
動作するビヘイビアがあれば参考までに教えていただきたいです。
0948nobodyさん
2009/02/26(木) 18:32:29ID:???いやsettingがかぶらない処理がしてあるから動くのかと思っただけ。アソシエーションの場合じゃないんだな
アソシエーション先のModelにもattachするとか、アソシエーション先のModelの処理も元ビヘイビアに書いちゃうとか、だめかい?
0949nobodyさん
2009/02/26(木) 18:38:25ID:/EQHTY5Ksetupは両方のモデルから呼び出されていますね
afterFindは親モデルからしか呼び出されないですね
当然といえば当然なんですかね。
>アソシエーション先のModelの処理も元ビヘイビアに書いちゃうとか、だめかい?
それしかないかなと思うんですよね。
0950945
2009/02/26(木) 21:46:08ID:/EQHTY5Kおそらくまったく同じ質問を英語で見つけました。
coreを改変する云々言ってるようですね。
ModelA hasMany ModelB
ModelB actsAs SomeBehavior
SomeBehavior defines afterFind()
ModelAController::someAction() has:
$this->ModelA->recursive = 1;
$this->ModelA->findAll();
Will SomeBehavior::afterFind() be triggered for ModelB, since ModelB
will be retrieved via association to ModelA?
http://groups.google.com/group/cake-php/browse_thread/thread/5f3d90e3686f191b/c3bb61dfb902b8c9?lnk=gst&q=afterfind
0951nobodyさん
2009/02/27(金) 01:00:21ID:???そこで質問したらすぐ答えてくれるのかな。
0952nobodyさん
2009/02/27(金) 04:38:34ID:???例だとvarcharになってるけど。これをBLOBとかにしても大丈夫?
(データベースはMySQL)
今は、varchar(100)で使ってるんだけど。phpmyadminで
ユーザー名とかが丸見えなんだよね。
気休めでしかないのは分かるけど・・・BLOBなら、phpmyadmin
では表示されないので、大丈夫なら変更したいんだけど。
0953nobodyさん
2009/02/28(土) 01:34:16ID:???allなのかfirstなのかlistなのかなどです。
0954nobodyさん
2009/02/28(土) 08:09:52ID:???0955nobodyさん
2009/02/28(土) 09:24:09ID:jSeVzlRvダミーのテーブルなしモデルを使う以外の方法はありますか?
App::import('Core', 'DboSource');
$data = DboSource::query($sql);
とかやってみたのですが、DataSourceクラスがないと言われ、
DataSourceもApp::importしてみたのですが、同様でした。
0956nobodyさん
2009/02/28(土) 09:25:12ID:???何のために知りたいか分からんから外してるかもだが、beforeFindではなく、Model::find()で判定すれば確実では?
0957nobodyさん
2009/02/28(土) 20:25:45ID:???$db =& ConnectionManager::getDataSource('default');
$result=$db->query('SELECT 〜');
0958nobodyさん
2009/03/01(日) 21:42:51ID:???↓ここを見て
http://hal456.net/qdmail/oopbase
$to = array('hoge@example.co.jp', 'foo@example.co.jp');
$this->Qdmail->to( $to );
としましたが、hogeにもfooにもメールが届きません。
$this->Qdmail->to('hoge@example.co.jp');
$this->Qdmail->cc('foo@example.co.jp');
にするとhogeとfooの両方に同じメールが届きQdmailが動いている事が確認出来ました。
解決のアドバイスをください。
さくらスタンダード、CakePHP1.2.1、Qdsmtp0.2.0a、Qdmail1.2.6b
0959nobodyさん
2009/03/01(日) 22:01:11ID:???自己解決しました。
$to = array('hoge@example.co.jp', 'foo@example.co.jp');
$toName = array('hoge', 'foo');
$this->Qdmail->to( $to, $toName );
のとおり$toNameで相手先名を設定する事で複数宛先へメールを送る事が出来る様になり
ました。お騒がせしました。
0960nobodyさん
2009/03/03(火) 15:11:04ID:???(たとえばNicEditとか)を付けるには、
どうしたらいいですか?
0961nobodyさん
2009/03/03(火) 16:47:53ID:???http://bakery.cakephp.org/articles/view/using-tinymce-with-cakephp
この辺が参考になるのでは。
つうかJavascriptをどっかで貼付るだけだけどね。
0962nobodyさん
2009/03/03(火) 17:32:49ID:???あとは、CakePHPの変態cssを何とかしたい・・・
0963nobodyさん
2009/03/03(火) 20:26:38ID:???0964nobodyさん
2009/03/04(水) 13:58:49ID:???http://cakephp.jp/modules/newbb/viewtopic.php?viewmode=flat&topic_id=1421&forum=7
0965nobodyさん
2009/03/04(水) 16:22:08ID:???なんで横幅を固定するのかなぁ?
リキッドレイアウトにした方がいいのに。
0966nobodyさん
2009/03/04(水) 20:19:52ID:???背景ひとつにしてもリキッドレイアウトだと
横に広げても違和感ないような同じパターンの
繰り返しの絵しか使えない。
不自然な空白は見た目が悪い。
レス数が950を超えています。1000を超えると書き込みができなくなります。