【PHP】フレームワーク CakePHP 12ホール目【笑】
レス数が1000を超えています。これ以上書き込みはできません。
0001nobodyさん
2011/07/01(金) 16:33:46.28ID:???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
前スレ
【PHP】フレームワーク CakePHP 11ホール目【v1.3】
http://hibari.2ch.net/test/read.cgi/php/1297860755/
0002nobodyさん
2011/07/01(金) 17:48:14.76ID:???>どう対応してますか?
PHPてnamespaceないんだっけか?
なんちゅーダサい言語w
0003nobodyさん
2011/07/01(金) 18:07:43.44ID:Hz/Fo+udあるよ
0004nobodyさん
2011/07/01(金) 19:10:44.19ID:???Cake的にはConfigure::load()/read()じゃなくて?
0005nobodyさん
2011/07/01(金) 19:38:21.72ID:???- routes.php
Router::connect('/m/', array('controller' => 'home', 'action' => 'index', 'prefix' => 'mobile'));
Router::connect('/m', array('controller' => 'home', 'action' => 'index', 'prefix' => 'mobile'));
Router::connect('/m/:controller/:action/*', array('prefix' => 'mobile'));
- app_controller.php
function afterFilter() {
if (!preg_match("/^m(\/)?/", $this->params['url']['url'])) {
$this->redirect('/m/' . $this->params['url']['url']);
}
if ($this->isMobile) {
$this->output = mb_convert_kana($this->output, 'k');
$this->output = mb_convert_encoding($this->output, 'SJIS', 'UTF-8');
}
}
こんな感じで振り分けたりしてるんだけど、
function show() {
$this->set('abc', $this->Model->find('all'));
}
function mobile_show() {
$this->set('abc', $this->Model->find('all'));
}
上記のようにコントローラにPC用と携帯用で全く同じ処理なのに
別々のアクションを作らないといけない。
これはしょうがないのかな?
もっとナイスな実装方法があれば助言お願いします
0006nobodyさん
2011/07/01(金) 23:15:29.99ID:???beforeFilter()かそれ以前で携帯か判定して
beforeRender()でviewを切り替えるComponentをつくる。
Controllerのactionは基本共通で場合によって処理も分けられる。
0007nobodyさん
2011/07/02(土) 00:23:23.70ID:???0008nobodyさん
2011/07/02(土) 00:36:56.30ID:???サンクス
いや、多分コントローラのアクション同一のものを使えると思う
>beforeRender()でviewを切り替える
なるほど。
処理が全て終わったあとで、
$this->render('mobile_' . 現在のaction名);
みたいな感じかな。
>beforeFilter()かそれ以前で携帯か判定して
これがちょっとわからない
beforeRender()のview切り替え時に携帯かどうか判断したらだめなの?
0009nobodyさん
2011/07/02(土) 00:52:56.31ID:???> >beforeFilter()かそれ以前で携帯か判定して
> これがちょっとわからない
> beforeRender()のview切り替え時に携帯かどうか判断したらだめなの?
actionの中身が完全に同一ならいいんだけど
たまに場合分けしたい部分もあるかと思ってね。
利用するModelも変わるかもしれないし。
0010nobodyさん
2011/07/02(土) 06:43:28.79ID:???切り替えにはテーマを使うほうがいいんじゃないかな?
http://book.cakephp.org/ja/view/1093/%E3%83%86%E3%83%BC%E3%83%9E
0011nobodyさん
2011/07/03(日) 03:59:17.90ID:???なるほど
>>10
おお、テーマ便利だわ
テーマ使ったら >>5 の方法みたいに
/m/ でアクセスする必要無くなったな
みなさんありがとう!
0013nobodyさん
2011/07/03(日) 11:43:28.90ID:???- app_controller.php
function beforeFilter() {
$agent = Net_UserAgent_Mobile::factory();
// 携帯
if (!$agent->isNonMobile()) {
if ($agent->isDoCoMo()) {
ini_set('session.use_cookies', FALSE);
ini_set('session.use_only_cookies', FALSE);
ini_set('session.use_trans_sid', TRUE);
session_start();
}
$this->isMobile = true;
$this->layout = 'mobile';
$this->theme = 'mobile';
// PC
} else {
:
:
}
}
routes.php の携帯関係(/m/)のマッピングと、
afterFilter() の redirect の記述は全て消した
携帯でアクセスすると、テーマがmobileになるので、
mobileテーマを用意すると、それをrenderしてくれる
結局テーマでほぼ解決できた感じ
0014nobodyさん
2011/07/03(日) 19:14:04.25ID:???0015nobodyさん
2011/07/03(日) 19:44:35.63ID:???0016nobodyさん
2011/07/03(日) 19:51:41.97ID:???0018nobodyさん
2011/07/03(日) 23:13:54.05ID:???0019nobodyさん
2011/07/03(日) 23:53:57.75ID:???0021nobodyさん
2011/07/04(月) 17:00:10.02ID:???array_walk_recursive
0022nobodyさん
2011/07/05(火) 16:49:34.52ID:???同じフォームのある特定のselectのある選択肢が選択された時のみ、
ある input をrequiredにする、
ってできる?
↓これでできそうな気がするけど、同じフォームの値は取ってこれないのかな
http://book.cakephp.org/ja/view/1179/%E7%8B%AC%E8%87%AA%E3%81%AE%E3%83%90%E3%83%AA%E3%83%87%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%83%AB%E3%83%BC%E3%83%AB
0024nobodyさん
2011/07/05(火) 22:01:52.46ID:???いろいろ試しているけど、バリデーションの仕組みがややこしすぎる・・・
allowEmpty と required ってどう違うんだろw
requiredをtrueにしても、通ったりするし
0025nobodyさん
2011/07/05(火) 23:00:47.78ID:???0026nobodyさん
2011/07/06(水) 00:54:19.01ID:???使い物にならないよね。
あと、標準のコンポーネントやヘルパーはホント使い物にならない。
特にFormヘルパーは心の底から使えない。
こんな屑フレームワークが何故こんなに持てはやされているのか謎。
0027nobodyさん
2011/07/06(水) 10:07:17.00ID:???required は「その項目の存在を必須とするか?」の設定で、 allowEmpty は「空の値を許容するか?」
分かりやすく言うと、
パスワードとかで、
required = false
allowEmpty = false
にすれば、
フィールドがある場合は、必須入力。
フィールドがない場合は、保存可能。
0029nobodyさん
2011/07/06(水) 10:48:30.44ID:???日本人的理由って言うか、
途中で誰もメンテしなくなったりプロジェクトが消えてしまったりするフレームワークをいろいろ見てると
やっぱ使ってる人数は多いほうが良いよ。
0030nobodyさん
2011/07/06(水) 11:30:19.94ID:???最初から使用者が多かったわけではないのに
「みんなが使ってるから」は理由にならないと思う。
ちょっと、formヘルパーがなんで使えないか聞いてみたい。
0031nobodyさん
2011/07/06(水) 11:57:44.55ID:???俺はZendとかEthnaで挫折したけど、Cakeだと続けて来れた
0033nobodyさん
2011/07/06(水) 18:46:45.58ID:???カスタマイズに本気になる時間があったら俺俺作るわ
ヘルパーが使えないには同意。使ったことない。
0034nobodyさん
2011/07/06(水) 20:28:57.66ID:???ビューでaddScript書く時だけ使う。
0035nobodyさん
2011/07/06(水) 22:34:45.23ID:???0036nobodyさん
2011/07/06(水) 23:33:25.75ID:???普通に<a>タグ書けばいいじゃん
0037nobodyさん
2011/07/06(水) 23:55:49.43ID:???記述が煩雑になってありがたみが薄れるからなー。
簡単なelement書くか、変数展開だけで済ますかな。
0038nobodyさん
2011/07/06(水) 23:55:53.23ID:???0039nobodyさん
2011/07/07(木) 02:25:19.28ID:???<?php echo Router::url('/') ?>
とかしらないのか?
0040nobodyさん
2011/07/07(木) 12:07:41.48ID:???maxlength自動で設定してくれたりして、便利だと思うけどなぁ。
(保守が楽)
アソシエーションの設定をちゃんとしとけば
saveallで一発で保存できるし。
0041nobodyさん
2011/07/07(木) 14:34:22.19ID:???となってしまう事だけど、これは仕方ないよな
0042nobodyさん
2011/07/07(木) 15:59:11.03ID:zfJE1aJ10043nobodyさん
2011/07/07(木) 17:34:23.24ID:???0045nobodyさん
2011/07/07(木) 20:47:26.25ID:???<a href="<?php echo Router::ulr('/')?>">URL</a>
htmlヘルパー使わないんだから、こうなるよな
0046nobodyさん
2011/07/07(木) 21:46:25.25ID:???ulrってなんぞ?
0047nobodyさん
2011/07/07(木) 22:46:37.36ID:???0048nobodyさん
2011/07/08(金) 01:10:30.14ID:???0049nobodyさん
2011/07/08(金) 11:16:11.84ID:???複雑になるだけな気がするんですが、メリットがあったら教えてもらいたいです。
0050nobodyさん
2011/07/13(水) 05:52:56.24ID:???を使って他テーブルの外部IDを設定(ひもづけ)するのは危険かな?
例えばショッピングサイトで注文テーブルの注文IDを、注文内容テーブルの外部IDに設定するような場合。
処理の途中で別のINSERTが入った場合はどうなるんだろう・・・?
0051nobodyさん
2011/07/13(水) 09:01:50.59ID:???トランザクション使うなら、InnoDBにしないといけないけど。
0052nobodyさん
2011/07/14(木) 00:15:26.04ID:???ssh接続するサーバ上で開発する場合、開発環境はどんな選択肢があるんだろう?
0053nobodyさん
2011/07/14(木) 00:56:03.07ID:???0054nobodyさん
2011/07/14(木) 01:03:22.06ID:???0056nobodyさん
2011/07/14(木) 22:23:54.50ID:???このあたりの検索キーワードでリモートでデバッグ出来ますので、分かってしまえばかなり便利です。
0057nobodyさん
2011/07/18(月) 05:28:44.18ID:???奴らは街角で拉致られてタコ部屋に押し込められて強制労働させられてるのか?
自ら希望して派遣会社に登録したんじゃないのか?
まずそこをハッキリして貰いたいんだが。
0058nobodyさん
2011/07/18(月) 06:38:04.14ID:???0059nobodyさん
2011/07/18(月) 11:02:32.30ID:???0060nobodyさん
2011/07/18(月) 12:50:23.72ID:???0061nobodyさん
2011/07/18(月) 17:26:31.69ID:???0062nobodyさん
2011/07/19(火) 14:07:14.50ID:???俺は勉強おろそかになってた時期も含むと、8,9年ぐらいになるんだけど
ロールバックとかトランザクションとかDBの知識全くないわ
0063nobodyさん
2011/07/19(火) 19:02:12.16ID:???ここ10年の間なら、Webプログラミング+DBってパターンが王道だし、
PHPとMySQLは、もっとも利用されている組み合わせだ。
なのに、PHPのみで8〜9年というのはおかしいな。
今までCSVのみでデータの読み書きをしていたのか?
0064nobodyさん
2011/07/19(火) 19:55:53.43ID:???いや、ずっとDBだけど大規模なサイトの開発しなかったら正直
ロールバックとかトランザクションなんて使わなくてもいいからな
PHPから接続して、CRUDできたら大抵のシステムは組めるでしょ?
0065nobodyさん
2011/07/19(火) 21:17:02.33ID:???デフォルトだと今でもMyISAMだろうし。
0066nobodyさん
2011/07/19(火) 21:25:45.94ID:???0067nobodyさん
2011/07/19(火) 21:43:17.25ID:???0069nobodyさん
2011/07/20(水) 07:14:48.59ID:???月1000万PVあるポイントサイト運営してるけど、MyISAMだし、
それでデータが破壊されることは無い。
だから、この程度の規模だとトランザクションは必要ないのかもな。
0070nobodyさん
2011/07/20(水) 11:19:20.67ID:???サンプルの中にある
cake\tests\lib\templates の
footer.php と header.php と menu.php から
ものすごい数のエラーが出てるんだけど
何か設定間違えたかな?
http://mergedoc.sourceforge.jp/
ここのEclipse3.6を一回更新して使ってるんだけど
0071nobodyさん
2011/07/20(水) 12:27:08.82ID:???トランザクションの有無は操作内容によるから規模関係ないかと。
あとInnoDBプラグイン以降はMyISAMの出番はないんじゃない?
小さめのDBならMyISAMのが良いこともあるけど、その規模なら誤差みたいなもんだし。
0072nobodyさん
2011/07/20(水) 15:10:09.78ID:???0073nobodyさん
2011/07/20(水) 16:08:47.61ID:???ポイントサイトやってるから、毎秒100人ぐらいの
同時アクセスが発生するんだが、
DBの読み書きでトランザクションを使用してないので
どうなるかと運営当初は不安だったが、全然大したことなかったw
だから、どの程度の規模・アクセス・処理想定をすれば
InnoDBにしてトランザクションした方が良いかわからないんだよな。
0074nobodyさん
2011/07/20(水) 16:58:32.13ID:???銀行口座AからBへ振り込み処理を行うとする。
1.UPDATEでAの残高を減らす
2.UPDATEでBの残高を増やす
もし1の処理の後、エラーが起きて2が実行されなかったとする。
するとAの残高だけ減っているというデータの不整合が起きてしまう。
こうならないために、1と2をトランザクションで囲って、
エラーが起きた場合はロールバックして1の処理をキャンセルする。
0075nobodyさん
2011/07/20(水) 17:12:21.69ID:???内容が戻るのを防ぐのもトランザクションでやるの?
0080nobodyさん
2011/07/20(水) 20:08:13.30ID:???0081nobodyさん
2011/07/20(水) 20:08:31.53ID:???行ロックってデッドロックの解決わからなくて実装してないなぁ
手動で解除できるようにしとくくらいなのか?
0082nobodyさん
2011/07/20(水) 20:35:12.17ID:???pconnect使わなければプログラム終了したらDB接続も勝手に切れる。
嫌ならロックやトランザクション使うときだけ明示的にconnectする。
>>80
AppModelかBehaviourに
$db =& ConnectionManager::getDataSource($this->useDbConfig);
return $db->begin($this);
こんなメソッド書くかんじ?
同じDB接続なら二回目以降は無視するとかcommit/rollbackをまとめて行うとかの工夫はほしいけど。
0085nobodyさん
2011/07/21(木) 00:07:23.26ID:???通常はsaveAllで事足りるはず。
MySQLならinnoDB使ってれば自動でトランザクションしてくれる。
0086nobodyさん
2011/07/21(木) 07:30:42.02ID:???alpha版ためしたらエラーでまくりだった;
Lithiumとどっちが先か・・・
0087nobodyさん
2011/07/21(木) 14:11:40.28ID:???通常の範囲せますぎやない?
クエリの間に判定や分岐をいれたいことって多々あるとおもう。
MySQLのストアドは弱いしね。
0089nobodyさん
2011/07/21(木) 16:40:06.60ID:???例えば、会員情報を更新しようとして、一緒に
プロフィールテーブルやポイントテーブルを更新する事は想定できるだろ。
0091nobodyさん
2011/07/21(木) 18:32:52.63ID:???0092nobodyさん
2011/07/21(木) 19:02:21.63ID:???流れ見ててるからわからん。
>>87
saveallじゃ足らんって言ってて
>>88
具体的にどんな時に必要?
>>89は
プロフィールテーブルやポイントテーブルを更新する事は想定できるだろ。
↑これはsaveallで足りるから、まさか>>88へのレスでは無いとは思うけど、
どうなんだろうって思ったから。
009392
2011/07/21(木) 19:15:12.79ID:???会員AからBにポイントを振る場合は、
トランザクション処理になるだろうけど、
cakePHPの場合、model->saveに渡す配列に
ちゃんとデータを入れれば、
saveAll一発で済むし。
0094nobodyさん
2011/07/21(木) 19:18:17.61ID:n5p3Ei1e・ポイントをプラスする
・ポイントが500以上になったユーザーのプロフィールを更新する
こういうのはSaveAllじゃダメだろ。
どんだけ単純なアプリ作ってるんだよ。
0095nobodyさん
2011/07/21(木) 20:01:13.12ID:???単純思考過ぎる。saveAll一発でいけたら苦労しない
0096nobodyさん
2011/07/22(金) 17:29:49.62ID:???int(2)
これって同じことなの?
0097nobodyさん
2011/07/22(金) 18:25:40.59ID:8Fm0K952ちがうよ
0098nobodyさん
2011/07/22(金) 18:31:43.01ID:???MySQLでのテーブル定義時の話だよね?
TINYINTは-128から127 (符号無しの場合0から255)が保持可能
INTは-2147483648から2147483647 (符号無しの場合0から4294967295)が保持可能。
型の後ろのカッコは表示幅。(2)は2桁に満たない場合に0フィルしてくれるけど3桁だと
幅指定無視して3桁表示される。切り捨てたりするわけではない。INTだと4桁、5桁も
ありえるので、そういう値を扱うとき同じとはいえない
0099nobodyさん
2011/07/22(金) 20:18:54.31ID:???仕様が良くあると思いますが、この場合のバリデーションってどうしてます?
0100nobodyさん
2011/07/22(金) 20:32:49.17ID:???0101nobodyさん
2011/07/22(金) 20:54:14.56ID:???で作ればいいだけでは?
0103nobodyさん
2011/07/22(金) 21:25:49.24ID:M3kIDpUH0105nobodyさん
2011/07/22(金) 22:13:36.68ID:???0106nobodyさん
2011/07/22(金) 22:32:30.85ID:???おいらはAuthコンポーネント使うからコントローラで
$this->Auth->password($hogehoge)
かな。
0107nobodyさん
2011/07/22(金) 22:36:18.41ID:???if ($this->User->validates() {
$this->data['User']['password'] = $this->Auth->password($this->data['User']['password']);
$this->User->save($this->data, false);
}
てな感じで、一度バリデーションして
問題なければパスワード暗号化してそれからsaveするんだよね?
好きにしろって言われればそれまでだけど、他はどうしてるか気になってね
0108nobodyさん
2011/07/22(金) 22:47:57.32ID:???password1 == password2のバリデーションをpassword1 に設定
コントローラで
$this->data['User']['password'] = $this->Auth->password($this->data['User']['password1']);
$this->User->save($this->data, true);
みたいにしてる。定石かどうかは知らん。
ただ、入力をpasswordにするとAuthコンポーネントが
勝手にハッシュ化してめんどいことになる。
0109nobodyさん
2011/07/22(金) 22:57:53.24ID:???0110nobodyさん
2011/07/23(土) 01:00:17.82ID:???if ($this->User->save($this->data)) {
save後の処理
} else {
$this->set('error', '登録に失敗しました');
}
0111nobodyさん
2011/07/23(土) 01:38:41.86ID:???くだらなくない。商用コードでそれ抜くやつはほんと勘弁してほしい。
実際はModelでException投げるのがスマートかもね。
0114nobodyさん
2011/07/23(土) 18:02:27.92ID:???コントローラーに比重を大きくした方がよくね?
高速生産オンリー視点でいえばモデルに比重を大きくした方がいいけど
モデルの比重が大きくなると
拡張や柔軟性が失われるデメリットがある。
大規模サイトに発展する可能性、またはアジャイル開発なら
高速生産と柔軟性のバランスを取った方が良いので
コントローラの比重を大きくした方がよいと思う。
0115nobodyさん
2011/07/23(土) 18:14:28.33ID:???俺もそう思う。モデルにあれこれ書きすぎるのは汎用性が低くなる。
モデルはシンプルで、コントローラで色々操作する方が良い。
0116nobodyさん
2011/07/23(土) 19:09:03.76ID:???0118nobodyさん
2011/07/23(土) 20:28:29.38ID:TdNTdShr0119nobodyさん
2011/07/23(土) 22:36:05.05ID:???0121nobodyさん
2011/07/24(日) 09:35:25.15ID:???あれってビューで設定できないの?
CSSなら、
$html -> css('abc', null, array('inline' => false));
でできるんだけど、同じようにタイトルもできたらいいんだけど。
0122nobodyさん
2011/07/24(日) 15:34:45.69ID:???0125nobodyさん
2011/07/24(日) 18:39:27.04ID:???0126nobodyさん
2011/07/24(日) 18:43:37.38ID:???0129nobodyさん
2011/07/25(月) 00:04:03.79ID:???ここ
http://www.toypark.in/
0130nobodyさん
2011/07/25(月) 00:31:03.69ID:???ドキュメントルートの中にしか入れないレンサバなら「3.3.1 開発」のページ
一段上に上がれるレンサバなら「3.3.2 運用」を
VPSとか好きにいじれる鯖なら、「3.3.3 応用インストール」を見て好きなところにコアを入れればいい。
0131nobodyさん
2011/07/25(月) 01:23:27.03ID:???/public_html
└/cake
で、いんじゃないの?
0132nobodyさん
2011/07/25(月) 22:18:23.04ID:???マッチングサイトの「さぶみっと!」ってCakePHPで開発してるんですかね?
ログインフォームを見ると、name="data[Customer][c_mail]"
みたいになってました。
0133nobodyさん
2011/07/26(火) 01:54:11.26ID:???0134nobodyさん
2011/07/26(火) 01:54:48.76ID:???http://cialla.toypark.in/note/dev20100702_01.php
一番下に書いてあるようにアクセスのURLがださい。
>アクセスは http://cialla.toypark.in/sample/index.php/コントローラー/アクション/引数 のように
>index.php をはさむ形になります。
こんなのは嫌だから他のサーバーに変えたい。
CakePHPが使える無料のサーバーのお勧めはある?
0135nobodyさん
2011/07/26(火) 08:26:21.57ID:???はい次の人
0136nobodyさん
2011/07/26(火) 15:45:29.74ID:HGkMvVWC月200円捻出してXREAでも借りた方がいいと思う
0137nobodyさん
2011/07/26(火) 18:15:32.16ID:???月100円でも出せば、ロリポップやさくらでも借りられるだろ。
それすら出せない奴がFWでどんなコンテンツ提供するって言うんだ?
0138nobodyさん
2011/07/27(水) 08:20:56.42ID:???2.0系を新規に使うのはまだ早いかな?
0140nobodyさん
2011/07/27(水) 11:35:39.15ID:???0141nobodyさん
2011/07/27(水) 12:15:56.89ID:???0142nobodyさん
2011/07/27(水) 13:06:18.65ID:???0143nobodyさん
2011/07/28(木) 01:45:02.72ID:???PG歴8年で、PHP歴は1年程度です。
フレームワークを使わないPHP開発は一通り経験しているつもりです。
まだcakeを紹介したサイトをいくつか読んだレベルなのですが、
「なぜcakeを使うのか?」がいまいちピンときていません。
開発スピードなら、既成ライブラリや私製ライブラリで十分な成果が出る気がします。
MVCがしたいなら、別にcakeをつかわなくてもできるんじゃ?と思います。
複数PGでの協業にcakeが威力を発揮するとも思えないのです。
みなさんはなぜcakeにかぎらず、PHPフレームワークをつかっているのでしょうか?
みなさんのご経験された案件でcakeなりPHPフレームワークを使うことを決定した理由は
なんなのでしょうか?差し支えなければ教えてください。
0144nobodyさん
2011/07/28(木) 02:05:07.80ID:???core.php
Configure::write('Session.timeout', '720');
Configure::write('Security.level', 'low');
こういう設定なのに、、、
ほかにセッション関連の設定ってあったっけ?
0145nobodyさん
2011/07/28(木) 09:25:36.36ID:???デザイナがいなくて画面を自分で作らなければいけない仕事をやってるんで、
scaffoldを吐き出してくれるのが一番助かってるかなあ。
あとはクエリパラメータを関数の引数にマップしてくれるので
どこでどのパラメータを使っているかわかりやすいとか。
フォームヘルパーみたいのも自作しなくてすむし。
ページングも楽だ。
まあ、単体で見るとたいしたことなくても、Railsがフルスタックフレームワーク
と言われていたように、オールインワンでそろってるのが楽なわけよ。
0146nobodyさん
2011/07/28(木) 09:31:09.08ID:???俺は単に「ネット上の情報が一番多い」事が理由だな
cakeに限らない場合、命名規則や開発方法が決められていると、
開発時の迷いが少なくなるというメリットがある。俺にはこれがでかい。
0147nobodyさん
2011/07/28(木) 09:35:44.21ID:KTDSJqbkあと情報が多いのも理由ですね、ここもそうですが他のプログラマーの意見を見るのも参考になりいますし。
0148nobodyさん
2011/07/28(木) 10:55:09.01ID:???チーム開発してると合意というか統制がとりやすい。デザインパターンみたいなもん。
保守面でもFWのバグやセキュリティフィックスの作業が軽減できる。
Cake1.x自体は構造が古くてクソだけど。
0149nobodyさん
2011/07/28(木) 14:22:31.40ID:???0150nobodyさん
2011/07/28(木) 16:15:59.59ID:???これなんだけど、
ログイン情報を Session->write() で書き込んで
>>144のような設定なのに数時間ぐらいで切れる
だれかエスパーして
0152nobodyさん
2011/07/28(木) 17:10:54.49ID:???セッションファイルは本当に削除されてるか?
0153143
2011/07/28(木) 19:26:15.08ID:???>>146
>>147
>>148
なるほど。
参考になります。
と同時に自分の浅はかさを露呈したと赤面の限りです。
もうちょっと勉強してでなおしてきます。
みなさまご丁寧に返信有難うございました。
※2chでこのようにまともに
返信いただけることも少ないもので。
0154nobodyさん
2011/07/28(木) 20:14:41.46ID:???いきなり長文で余計な情報いっぱいの質問しても、
普通は回答なんてこないよ。
要点を手短に、具体的に。
あなたの質問なら
>「なぜcakeを使うのか?」
この1文以外は余計な情報じゃないですか。
0156nobodyさん
2011/07/28(木) 20:55:36.17ID:2K/biVGO0157nobodyさん
2011/07/28(木) 21:08:06.68ID:???そうでなきゃPHPなんか使う気がせん
0158nobodyさん
2011/07/29(金) 08:25:57.30ID:???日本語でなんていうの?
0159nobodyさん
2011/07/29(金) 09:42:25.49ID:???0160nobodyさん
2011/07/29(金) 14:16:11.30ID:???IT用語かな読み辞典を作ろうと思うけど
どうですか?
0161nobodyさん
2011/07/29(金) 14:42:46.19ID:???0162nobodyさん
2011/07/29(金) 15:44:08.35ID:???0166160
2011/07/31(日) 15:09:43.71ID:???memcached
これ日本語で統一されてないと
時間ロスになるじゃん。
だから
プログラマーのためのIT用語かな辞典が欲しいのであります。
0167nobodyさん
2011/07/31(日) 15:23:59.96ID:???0168nobodyさん
2011/08/01(月) 10:38:44.82ID:???ページ表示すると、CakeSqlLogが84行とかあるんだけど。。。
あえて可視化されて、多く感じるだけで、
他のフレームワークや、普通のシステムもこれぐらい投げてるものなのかな?
0169nobodyさん
2011/08/01(月) 11:24:17.47ID:???2系でそういうの無くなればいいが、おそらく無くならないだろう・・・
0170nobodyさん
2011/08/01(月) 12:00:23.31ID:???0171nobodyさん
2011/08/01(月) 14:47:33.56ID:???しかもその後自分でlastinsertidしようとすると、またクエリ投げるし。
キャッシュ効いてるから対したロスではないんだろうけども、気になる。
0172nobodyさん
2011/08/01(月) 14:58:08.84ID:???さくらインターネットからプログラム見なおせゴルアとお叱りうけて、
同時接続数制限かかりました
0177nobodyさん
2011/08/01(月) 19:40:28.61ID:???VPSはセキュリティとかがめんどくさいし、
値段対スペックもそれほどよくないんじゃないかな
>>174
スタンダードです
>>175,176
ユーザーが増えたのもあるけど、
やっぱプログラムもあると思う
キャッシュ機構使ってないからな
0178nobodyさん
2011/08/01(月) 20:43:41.20ID:???掲示板でそんな重い処理をしてるとも思えないから、インデックスがあたってないとか
slow quelyが多すぎるってことなんじゃないだろうか。
0179nobodyさん
2011/08/01(月) 20:45:09.69ID:???いや、俺が実際、あんたと同じような状況で
さくらレン鯖→さくらVPSに乗り換えてるから。
鯖のパフォーマンスは全く違うよ。値段も月980円だし。
ま、スタンダードプランと比べたら高いけどw
0182nobodyさん
2011/08/02(火) 00:19:31.86ID:???まっとうにxhprofなんかでプロファイリングするのが一番だよ。
0183nobodyさん
2011/08/02(火) 11:36:16.76ID:???0184nobodyさん
2011/08/02(火) 11:51:24.22ID:???0185nobodyさん
2011/08/02(火) 13:28:29.78ID:???0186nobodyさん
2011/08/02(火) 15:47:43.26ID:???0187nobodyさん
2011/08/03(水) 10:09:50.16ID:???0188nobodyさん
2011/08/03(水) 10:25:33.37ID:???それだけでVPSという選択肢になる。
0189nobodyさん
2011/08/03(水) 16:21:43.62ID:???例えば野球の選手データのように、毎日内容が変わるものがあるとします。
新しいデータを入れたらキャッシュを削除して再キャッシュすると思うのですが、
選手データのような、種類が多くて大量データの場合もそう言う考え方なのでしょうか?
0190nobodyさん
2011/08/03(水) 19:34:15.66ID:???というか、そういう更新するとこって、最終更新日とかタイムスタンプついてるところもある気がする。
0191nobodyさん
2011/08/03(水) 20:10:36.86ID:???試合があったらその都度、攻撃とか守備とかのデータを追加して、選手ページのキャッシュ更新すればいいんじゃね?
俺も野球見ないからこんな仕様でいいのか自信ないけど
0192nobodyさん
2011/08/03(水) 21:49:09.98ID:???そういう頻繁に更新するキャッシュ管理はどうするのかな?と思いまして。
毎日、何百のデータを一括削除してまたキャッシュし直すって
動作的にどうなのかな?と。そう言う疑問があります。
0193nobodyさん
2011/08/03(水) 22:57:53.89ID:???それはバッチ処理。そういうのをする場合もあるが、普通のwebアプリで普通にCakePHPのキャッシュというと、アクセスしたらキャッシュするだけであって、何日も更新されない(アクセス来ないからそのまま)データもあれば、頻繁にキャッシュ更新される場合だってあるよ。
そこらへんのバランスとかどの方法がいいか?とかは一概に言えなくて、あくまでその部分を作る奴のバランス感覚とかセンスの問題だな
0194nobodyさん
2011/08/03(水) 23:19:41.19ID:???>何日も更新されない(アクセス来ないからそのまま)データもあれば、頻繁にキャッシュ更新される場合だってあるよ。
これで納得しました。キャッシュってそういうもんなんですね。
例えバッチ処理であれ、大量のファイルを削除→再キャッシュすれば
時間がかかるだろうから、どうするのかな?って疑問に思っていたんです。
誰もアクセスしないファイルはそのままですか。納得です。
0195nobodyさん
2011/08/03(水) 23:24:31.18ID:???hasManyとか定義するとfindしたら強制的に関連テーブルひっぱってくるSQLが走りますよね。
パフォーマンス上げるためにunbindModelってするのが1つの方法だけど、
・hasManyの定義がたくさんあったら、1つ1つunbindModelするのもしんどい。
・そもそも何かのテーブルに1つhasMany追加したら、findしてる既存のコード全部に影響が出る。
ちょっとありえないかなと・・・
そこで自分のアプローチとしては、以下のようにしようかと思います。
・hasManyとかは一切定義しない
・bindModelTable1()みたいなfunction定義
・その中で動的にhasManyを定義
・findを呼ぶ前に関連テーブルをひっぱってきたいときだけ、bindModel*()を呼ぶ
これ以外に良い方法ありますかね。
0197nobodyさん
2011/08/03(水) 23:34:59.10ID:???うーん。たとえば、
・Model1にhasManyが10個定義されている
・Model2はhasManyを何も定義しない
・両方共同じテーブルを扱う
としますよね。
そうすると、hasManyのうち1つだけとか2つだけとかしたい時に、やっぱり面倒かなって。
みんなどうしてるのかな。
必要なときに必要なものだけひっぱるのがいいとおもうのだけど。
Railsはfind(:all, :include => [reviews, users])
みたいに必要なときに必要なものをって設計になってますよね。
ちょっとCakeの設計は解せないです・・・
0198nobodyさん
2011/08/03(水) 23:44:05.24ID:???この時点で設計が間違ってる。
みんなどうしてるのかな → 設計を見直してる
0199nobodyさん
2011/08/03(水) 23:52:35.69ID:???本質的にhasManyって、用途によって切り替えるものじゃないと思う。
モデルって普遍的なものだから、もしも本当に切り替えが必要なのだとすると、
そもそもそのモデルに定義しているリレーション自体が適当なのか?ということも検討しないと。
0200nobodyさん
2011/08/04(木) 01:12:45.98ID:???0201nobodyさん
2011/08/04(木) 02:51:02.47ID:???みんな必要なくてもhasManyとかでひっぱってくるがままにやってるのかな。
パフォーマンスとか気にし過ぎなのだろうか。
気になるのはモデルにhasManyを1つ追加しただけで、
既存のfind呼び出しの挙動が変わる可能性があるということ。
本番運用してると結構怖い気がするのだけど・・・
0202nobodyさん
2011/08/04(木) 11:13:12.20ID:???できないところはbindModel, unbindModelかな。
それでもだめなときは、joins使うな。おいらなら。
0205nobodyさん
2011/08/05(金) 12:21:21.48ID:???必要な時のみ自分でJOINする
結局手間暇考える時間トータルでこれは一番効率良かった
0206nobodyさん
2011/08/05(金) 13:41:03.54ID:???Call to a member function event() on a non-object
どこがおかしいのでしょうか。
<?php echo $html->script('prototype',array('inline'=>false)); ?>
<?php
$script =<<< EOL
function testFunc(str){
alert("you clicked \""+str+"\"!");
}
EOL;
echo $html->scriptBlock($script,array('inline'=>false));
echo $html->div(null,'Event Test!',
array('id'=>'click_div','style'=>
'background-color:#aaffaa'));
echo $javascript->event('click_div','click',
'testFunc("click_div")',array('inline'=>true));
?>
0207nobodyさん
2011/08/05(金) 14:13:35.15ID:???まずエラーメッセージを読もう。
「メンバ関数event()とか呼べねえよ」
関数event()が無いの?
スペルミスで呼び出せない?
それともオブジェクト(のインスタンス)が無いの?
というように調べて行って下さい。
ここまではPHPの基礎的な事。
じゃあ、この場面でオブジェクトを使えるようにするのはどうするの?
てのがcakePHPの話。
せっかくの夏休みだからちょっと考えてみて。
0208nobodyさん
2011/08/06(土) 01:09:49.78ID:???function testFunc(str){
alert("you clicked \""+str+"\"!");
}
EOL;
それより、このコーディング思想てどうなの?
0209nobodyさん
2011/08/06(土) 02:23:15.19ID:???つってももうdeprecatedだけど。
0210nobodyさん
2011/08/09(火) 09:53:22.94ID:???ビヘイビアとかでやってくるのないかな。
0211nobodyさん
2011/08/09(火) 10:51:41.99ID:???動かしてないけど
function save($data = null, $validate = true, $fieldList = array()) {
if (parent::save($data, $validate, $fieldList)) {
return $this->id;
}
return false;
}
0212nobodyさん
2011/08/09(火) 11:27:51.56ID:???<?php
class InsertIdBehavior extends ModelBeavior {
public function afterSave($model, created = false) {
if ($created) {
$model->data[$model->alias][$model->primaryKey] = $model->getInsertID();
}
}
}
これぐらい自作しなさいよ。
0213nobodyさん
2011/08/09(火) 23:18:40.82ID:???すみません・・・助かります。
まだソースハックしきれてなくて、そういう小回り聞いたコードが書けないので。
0214nobodyさん
2011/08/12(金) 14:33:38.57ID:???コントローラの共通関数はコンポーネント
モデルの共通関数はビヘイビア
じゃあビューとコントローラとモデル全部共通で使いたい関数はどこに置けばおkですか?
0216nobodyさん
2011/08/12(金) 17:56:38.23ID:???0219nobodyさん
2011/08/13(土) 01:45:59.40ID:???0220nobodyさん
2011/08/13(土) 13:46:17.52ID:???0221nobodyさん
2011/08/13(土) 13:56:23.30ID:???/ \
/ ─ ─\
/ ,(●) (●)、\
| (__人__) | はい、マニュアルは全然読みません。
\ ` ⌒´ / わからないことは、もっぱら2ちゃんで聞きます。
,,.....イ.ヽヽ、___ ーーノ゙-、.
: | '; \_____ ノ.| ヽ i
| \/゙(__)\,| i |
> ヽ. ハ | ||
0222nobodyさん
2011/08/13(土) 20:11:45.63ID:???0223nobodyさん
2011/08/14(日) 03:29:42.89ID:???マニュアル読んでなかったら「マニュアルに書いてるよ」
って言えば良いだけだろ。コミュ力0かよ
0224nobodyさん
2011/08/14(日) 06:40:19.56ID:???仕事は効率良くやるべきもの
0225nobodyさん
2011/08/14(日) 08:17:24.45ID:???0226nobodyさん
2011/08/14(日) 10:03:58.34ID:???そんなこたぁないぜ。
基本が出来てないと、同じようなことを何度も聞く事になる。
仕事を頼んでる方からすると、同じような事を何度もお願いしてるのに、その度に同じことを掲示板で聞いてるような奴には頼みたくないと思うが。
0227nobodyさん
2011/08/14(日) 13:25:29.62ID:???お前、会社で部下を持った事無いだろ?
それは単にお前が「教えてるだけ」だからだ。
だから教えられた方も身になってないし、自分も何も得られない。
普通、何度も同じ質問してこないような教え方をするし、
質問してきたという事はその事が「わかりづらい・難しい」わけだから、
どうやって伝えたら相手は理解するのか?という自分自身の勉強にも成り。
仕事でやってるならお客さんに対する説明の時とかな。
そこまで考えずに単に「教えてるだけ」なら、お互い何も得る物ねーわ
0228nobodyさん
2011/08/14(日) 13:28:16.97ID:???そいつは同じ質問されるのが面倒だという思いもあるだろうが、
スレを始めて見た人にわかりやすく解説するためにそうしてるんだろ。
それでも質問してくる奴がいるのは確かだが、
その時は、「>>1に書いてるよ」とひと言いえば良いだけ。
それがコミュニケーションだろ。>>226みたいなのは自分よがりすぎる。
0229nobodyさん
2011/08/14(日) 13:41:30.80ID:???0230225
2011/08/14(日) 13:50:36.60ID:???よくわからんな・・・
0231nobodyさん
2011/08/14(日) 14:01:53.48ID:???つまり、「マニュアルに書いてあるよ」とひと言いえば言いだけか。
0232nobodyさん
2011/08/14(日) 17:19:29.07ID:???お前何で「マニュアルに書いてる」って前提で話してるんだ?
それはお前が書いてるのを知ってるからわかるわけで、
それを知らない奴にとっては、書かれている事はわからないだろ。
で、マニュアルに書いてないと思った・あるいは見てないから質問するわけで、
だったら「マニュアルに書いてるよ」と、ひと言いえば済むだけ。
何をそんな疑問に思うか全く分からん。
0233nobodyさん
2011/08/14(日) 17:35:54.78ID:???じゃぁ、お前はなんで「>>1に書いてある」って前提で話してるんだ?
それはお前が書いてるのを知ってるからわかるわけで、
それを知らない奴にとっては、書かれている事はわからないだろ。
で、>>1に書いてないと思った・あるいは見てないから質問するわけで、
だったら「>>1に書いてるよ」と、ひと言いえば済むだけ。
何をそんな疑問に思うか全く分からん。
0234nobodyさん
2011/08/14(日) 17:45:10.43ID:???FWの作法・流儀にそった実装をして、共通認識を崩さないよう開発をするもんでしょ。。
あと読み流すだけでいいからクラス一覧も。
元主は質問してくれたんだから俺的にはセーフです。
0235nobodyさん
2011/08/14(日) 18:16:49.08ID:???質問に分かる奴がいれば答えれば良いし、分からなければ無視しろ。
マニュアルや>>1にあるなら教えればいいし、そうじゃなければggrksでいい。
なにを数レスまでごちゃごちゃ言ってるか俺には理解できない
0237nobodyさん
2011/08/15(月) 12:20:35.84ID:???/ \
/ ─ ─\
/ ,(●) (●)、\
| (__人__) | 仕事って教えてもらうものですよね。
\ ` ⌒´ / 自分で勉強しろとか上司の役割果たして無いと思うんです。
,,.....イ.ヽヽ、___ ーーノ゙-、.
: | '; \_____ ノ.| ヽ i
| \/゙(__)\,| i |
> ヽ. ハ | ||
教えて下さい。
簡単なフォームを作って確認の上、DBに登録
させる仕組みを作ったのですが、layoutデータ
の画像がリンク切れを起こします。
フォームのあるviewフォルダの中には、index、
kakunin、touroku、kanryouの4つのファイルが
あり、controllerで毎回layoutを再読み込みする
のですが、layoutのデータがちゃんと適用
されるのがindexのみでした。
他のファイルは/〇〇/kakuninのようにルートが
変わってしまうので、Router::url()を使って
変更するのだろうと思い試してみたのですが
上手くいきません。
とりあえず、Routerクラスあたりをあたって
いますが、詳しい方、どうか、無知な私に
教えていただけないでしょうか?
cakephpは、1.3を使っております。
よろしくお願い致します。
0239nobodyさん
2011/08/15(月) 21:47:16.16ID:???HTMLヘルパー使っての話しか?試しに↓したらどうだ?
<img src="<?php echo Router::url('/img/test.jpg');?>" />
今、試してみました!
出来ました!
有難うございます!
有難うございます!
今日一日、一体、何をやってたんだと情けない
ほど凹んでました。
本当に有難うございます!
リンクも同様に出来ました!
本当に、本当に、有難うございました!
0241nobodyさん
2011/08/16(火) 00:21:57.18ID:???悩んだら何でも最小限にして試してみる事だよ。
どこが問題になっているか分かりやすいからな。
0242nobodyさん
2011/08/18(木) 15:52:24.92ID:???ログインのフラグとして利用してるんだけど、すぐ切れる(無くなる)
core.phpの設定いじりまくってるが改善されん
0243nobodyさん
2011/08/18(木) 18:30:10.59ID:???知らないと使おうとしちゃうよね、結局皆自作してる
0244nobodyさん
2011/08/18(木) 19:03:38.07ID:???0245nobodyさん
2011/08/18(木) 20:01:04.63ID:???ブラウザを閉じたら、セッションも切れて欲しい
0246nobodyさん
2011/08/18(木) 21:23:39.00ID:???サーバのセッションデータが消えているのか切り分けないと。
たぶんサーバ側と思われ。
前スレだったかにもあったんじゃないかな。
http://pentan.info/php/session_gc.html
0247nobodyさん
2011/08/22(月) 12:06:04.64ID:???誰かくれませんかね?
0248nobodyさん
2011/08/22(月) 17:21:34.40ID:???https://github.com/hidetora23/hg_smarty_for_cakephp
これが動くかも。
0249nobodyさん
2011/08/22(月) 18:00:06.79ID:???0250nobodyさん
2011/08/22(月) 18:23:05.36ID:???0251nobodyさん
2011/08/22(月) 18:33:38.79ID:???0252nobodyさん
2011/08/22(月) 18:46:11.57ID:???0253nobodyさん
2011/08/22(月) 19:12:26.94ID:???Smartyだと禁止できる、というだけの話。
あと、これは自分の知識不足かもだけど、
CakePHPのデフォルトのテンプレートだと文字力出力すべてに
自動でHTMLエスケープとかできないような?
0254nobodyさん
2011/08/22(月) 20:18:34.47ID:???まあ有名だけど使う理由あるか?
0256nobodyさん
2011/08/22(月) 20:55:58.11ID:???<h1><?= $title ?></h1>
<?php endif; ?>
こういうテンプレートがある
0257nobodyさん
2011/08/22(月) 21:31:07.23ID:???フレームワークを使っているにもかかわらず
わざわざHTML内にPHPタグを書く面倒臭さを解消する程度の
知識も技術力もありませんっていう自己紹介ですか?w
0258nobodyさん
2011/08/22(月) 21:41:09.85ID:???ってのも立派な採用理由だと思うが。
0260nobodyさん
2011/08/22(月) 23:16:08.46ID:???まぁ、JavascriptはSmarty使ったところで一緒だがな。
デザイナでも受け入れられるテンプレートっつーと、PHPTalとかKwartsくらいか。
プログラマの方が一歩譲ってデザイン分かるようにしとるんだから、デザイナの方もPHPくらい分かれよ、って話は無い事も無いとは思うが。
0262nobodyさん
2011/08/23(火) 00:30:20.72ID:???情報も多いし。
0263nobodyさん
2011/08/23(火) 00:54:15.02ID:???それはプラスだけど、決定的な理由にはならんだろ
0264nobodyさん
2011/08/23(火) 00:55:46.48ID:???採用理由の一つにはなるだろ?ならない?
0265nobodyさん
2011/08/23(火) 01:06:12.97ID:???基本的にviwsの中身は触ってほしくないと思ってる。
単純に、例えば記事を$kiji配列でviewに渡して
viewの中で$kiji['tilte']とかを配置してく程度のお仕事ならいいけどさ。
cakeの機能を使えば使うほど、それだけでは無理が出てくる。
helperの仕様や中身まで熟知してもらわなきゃならなくなるからね。
0266nobodyさん
2011/08/23(火) 05:48:58.87ID:???プログラマにもデザイナにも使いにくい。
重さは許容範囲なんだが…。
0267nobodyさん
2011/08/23(火) 12:34:16.08ID:???問題は、CakeにSMarty使う事だ。
Cakeのテンプレや書き方があるんだから。
だから、Cake採用しているシステムは
PG以外にテンプレ触らせないようにすればいい。
0268nobodyさん
2011/08/23(火) 12:44:45.66ID:???0269nobodyさん
2011/08/23(火) 14:20:07.00ID:???Smarty以外にもテンプレは沢山あるんだから。PHPにはすげえ沢山あるぞ。
何故か>>255なんかは知らないみたいだけど。
情弱にはなりたくないもんだな。
せっかくMVCと分けてんのに、Vをデザイナ(HTMLコーダー)に振れないって意味わかんないw
0270nobodyさん
2011/08/23(火) 15:35:06.98ID:???言ってることには同意なんだけど、
じゃあ実際に何を使ってるのか具体的に名前を上げて欲しい
確かに個人製作みたいなライブラリがPHPにはすげえ沢山あるけど、
そのうちのほとんどがクソ品質だと思うんだが、使えそうなものっていくつあるの?
0271nobodyさん
2011/08/23(火) 16:03:36.46ID:???俺はHTML_Template_Sigmaを使ってるよ。
これのいいところは形式がほぼhtmlそのままであること。
ブロックの指定は
<!-- BEGIN AAA_BLOCK -->
xxxxxx
<!-- END AAA_BLOCK -->
にようにコメントで行うので、そのままブラウザで開いても(PHPを実行しなくても)ある程度表示確認ができる。
変数には$がつかず、{hage}などと挿入するだけ。
複雑な関数はいくらでも自作でき、html内にfunc_xxxx(引数)
これでなんでもできる。
テンプレ内にPHPのコードが一切出てこないため、プログラマ以外でも編集しやすい。
パフォーマンスも悪くない(Smartyと同程度)のでオススメ。
0272nobodyさん
2011/08/23(火) 18:26:21.68ID:???ループがプログラム側に来ているのが気に入らんかったかな。
といってもまぁ、Smartyに慣れる前はSmartyのテンプレート側でループしちまうってのが気持ち悪かったもんだから、そこは慣れなんだろうな。
0273nobodyさん
2011/08/24(水) 02:25:13.34ID:???>パフォーマンスも悪くない(Smartyと同程度)のでオススメ。
ならSmartyで良いんじゃないか?
無名のテンプレなんてオレオレと変わらんだろ。
そもそもテンプレートエンジン使うのが
「他人がわかりやすく編集するため」なんだし。
0274nobodyさん
2011/08/24(水) 14:36:43.09ID:???Smartyが使いにくいから嫌だって言って、他のを進めてるんじゃないの。
なのに重さが同じならSmartyでいいじゃんってw
あとお前が知らなければ無名なのかwどうせ他に1つも知らないんだろ?
0275nobodyさん
2011/08/24(水) 14:45:29.44ID:???0276nobodyさん
2011/08/24(水) 15:24:39.56ID:???0277nobodyさん
2011/08/24(水) 15:30:25.84ID:???だから狭い範囲で語るなってw
よっぽどSmartyに恨みあるのか知らんが
お前がこの世の中心じゃねーんだよ
0278nobodyさん
2011/08/24(水) 15:35:48.21ID:???0279nobodyさん
2011/08/24(水) 22:19:19.91ID:???0280nobodyさん
2011/08/24(水) 22:30:37.30ID:???0281nobodyさん
2011/08/25(木) 04:07:10.99ID:???・Smartyを使う理由はない派
・Smartyを使う理由はあるけど他にもっといいのあるよ派
・Smartyはいいものだ
0282nobodyさん
2011/08/25(木) 13:16:21.16ID:???0283nobodyさん
2011/08/25(木) 16:30:21.20ID:???0284nobodyさん
2011/08/25(木) 22:31:51.21ID:???1.3ではバージョンファイルの削除は
プラグイン側ではやってくれないようになったのでしょうか?
0.6ではbeforeDeleteでtransferとバージョンファイル両方消してくれてましたが、
1.3ではtransferしか消してくれてないようなんですが。
0285nobodyさん
2011/08/26(金) 13:13:17.82ID:???0286nobodyさん
2011/08/26(金) 13:40:06.61ID:???左に各ページに飛ぶボタン、右に各ページを作ってるわけさー
で、ログイン処理行ってて、左にログアウトボタンをつけて
echo $form->create('MUser',array('action'=>'logout','target'=>'_top'));
echo $form->end('logout');
でちゃんとログイン画面に戻るんだけど
タイムアウトの場合、左のボタンを押したら
右側だけがログイン画面にいっちゃう
で、ログインしようとすると、フレームが増える(左左右みたいに)
タイムアウトの場合も1画面のログイン画面に戻したいんだけど
何か良い案はないですかね?
0287nobodyさん
2011/08/26(金) 16:47:07.40ID:???0288nobodyさん
2011/08/26(金) 17:08:32.51ID:???どうやってんのかサッパリだわ。
0289nobodyさん
2011/08/26(金) 17:40:48.03ID:???0290nobodyさん
2011/08/26(金) 17:41:53.24ID:???使ってそうだな
0291nobodyさん
2011/08/26(金) 18:56:15.61ID:???tableでレイアウト作るような奴とは仕事したくないけど、
表を作るならtableタグを使うべきだと思うけど。
0292nobodyさん
2011/08/26(金) 21:34:55.48ID:???0294nobodyさん
2011/08/26(金) 23:42:06.60ID:???ヘッダー、左サイドバー、右本ページ
サイドバーでのセッションの挙動でちょっと迷ったけど、
普通にCake側のpage_name/1で仕様を満たした。
0295nobodyさん
2011/08/27(土) 00:30:53.03ID:???無理やりなんとかするならJavaScriptで状況解析して全画面リロードかな。
うちもメニュー固定ならフレーム使うことあるけどな。
ページ遷移ないから操作楽だし。
そのウィンドウからシステムの外に出ない限りは何の問題もない。
0297296
2011/08/27(土) 14:23:23.85ID:???0298nobodyさん
2011/08/28(日) 02:02:37.91ID:???ログイン画面にjavascriptで左フレームの中身見て適宜リロードさせるとかそんな感じでおk
0299nobodyさん
2011/09/02(金) 13:07:38.22ID:???HTML的に良くないけど、みんなどうしてる?
サーチとかログインフォームなんかは、1ページ上に2カ所以上で表示させる必要があることがあると思うんだけど。
0300nobodyさん
2011/09/02(金) 14:08:53.98ID:???form1、form2とか
0301nobodyさん
2011/09/02(金) 14:51:41.25ID:???Postgresもちゃんと起動しているのに、
index.phpをブラウザ上で見るとDBに接続できていない、という黄色の帯が表示されます。
PostgreSQLはVer9です。
class DATABASE_CONFIG {
var $default = array(
'driver' => 'postgres',
'connect' => 'pg_connect',
'persistent' => false,
'host' => 'localhost',
'port' => '5432',
'login' => 'postgres',
'password' => 'パスワード'',
'database' => 'postgres',
'prefix' => '',
);
}
他には何が設定が必要なのでしょうか?よろしくお願いします。
0302nobodyさん
2011/09/02(金) 15:11:45.40ID:???0303nobodyさん
2011/09/02(金) 15:14:47.80ID:???Authでログイン処理をしていて、ログインできるユーザー管理部分を作ってるんだけど
会員情報モデルでパスワードの文字数をバリデーションしていると
暗号化された後のパスワードでバリデーションされてしまい、文字数制限にひっかかってしまいうまくいかない
あと会員情報を編集すると、暗号化されたパスワードをさらに暗号化してしまいパスワードが変わってしまう
これらを回避する定番的な方法ってどうやるの?
結構ぐぐったけど案外出てこない…
この辺が以前出ていた、Auth使い物にならないから使わないと言われる理由なのかな?
0304nobodyさん
2011/09/02(金) 15:41:53.93ID:???Authではまり中。
暗号化(ryはbeforefilterで後暗号化とか書いてあったな。
普通のユーザのAuthと、管理者のAuthと分けるにはゴリゴリ書くしかないのかorzz...
0305nobodyさん
2011/09/02(金) 15:43:46.07ID:???ttp://castleonthedesk.seesaa.net/article/118189342.html
0306nobodyさん
2011/09/02(金) 15:48:18.14ID:???AppControllerを継承したControllerでは、AppControllerで定義したusesとかcomponentsとか使えるんだけど
AppController->共通Controller->個別Controllerと継承したい時があって
それをやると、個別Controller内でAppControllerのusesやcomponentsが未定義になる。
これはこういう仕様で、やりたければ何か決まったやり方があるのでしょうか?
最近触ってるけど、Cakeって結構常識的にできてなくてびっくり。
0307nobodyさん
2011/09/02(金) 16:07:23.99ID:???認証分けようと思ってやってるが、未定義になって←イマココ
ttp://doruby.kbmj.com/sendriver_log/20101229/cakephp_
0308nobodyさん
2011/09/02(金) 17:31:35.83ID:???ここ情報ありました。
PHP5.2ってPostgreSQL連携ライブラリを読み込めないバグがあるみたいですね。
0309nobodyさん
2011/09/03(土) 00:30:45.79ID:???oresama_controller.phpにて、
class OresamaController extends AppController {
むにゃむにゃ
}
としてます。
んで、
http://example.com/oresama/
というディレクトリがある場合、処理がコントローラーに渡らずに
Forbiddenになってしまいます
どうしたらいいでしょう?
0311nobodyさん
2011/09/03(土) 07:29:24.81ID:???サンプルコードがないのでわからないのだが、
>Baseの$usesとBaseBarの$extra_usesをマージ
というのはどこでやればいいの?BaseBarのコンストラクタにarray_mergeとか書くの?
0312nobodyさん
2011/09/03(土) 13:49:15.94ID:???検索条件のフォームをGETで送るとpaginateがうまく働かないので
<?php $paginator->options(array('url' => $this->params['url'])); ?>
のようにしてパラメータを明示的にURLに付け足しているんだけど、
1ページ目は、パラメータが$this->params['url']に入っていて、
2ページ目には、$this->passedArgsに入っているという統一感のない実装になってしまっています。
?test1=123&test2=456
のようにアクセスした値を受け取る $this->params['url']と、
/test1:123/test2:456
のようにアクセスして値を受け取る $this->passedArgs
を変換するような関数って用意されてないのかな?
0313nobodyさん
2011/09/03(土) 15:10:07.48ID:???GETを使ってるフォームにまでご丁寧にトークン放り込んでくれちゃったんですが、
GETの場合はトークンいれないとかはできないんでしょうか?
0314nobodyさん
2011/09/03(土) 18:29:05.17ID:???0315nobodyさん
2011/09/03(土) 19:07:13.55ID:???0316nobodyさん
2011/09/03(土) 20:56:38.64ID:???0317nobodyさん
2011/09/03(土) 21:12:48.68ID:???1.2がいちばん盛り上がったみたいだよね。1.2で作ったほうが早いのかもw
CakePHP フォーラムはどうでしょうか?
結構、詳しい方がフォローしてくれそうな感じ
がするのですが・・・
ただ、私はこちらで親切に教えていただいた
おかげで1週間近く悩んでいた問題が解決
できました。
0319nobodyさん
2011/09/04(日) 14:05:32.89ID:???CakePHPからLithiumはすんなり入れるでしょうか?
もし入れるならドキュメントが多いCakePHPでまずは勉強しようと思うのですが、
全くの別物のようならいきなりLithiumから頑張ってみようと思います。
0320nobodyさん
2011/09/04(日) 14:49:40.45ID:???例えばショッピングモール作ると、
同じModelに対してエンドユーザー・店舗・システム管理者と、三種類のユーザーそれぞれに別の画面が必要でーみたいな。
今まで別アプリとして作ってきたんだけど、Modelとかが結構同じ構造なのでもっとDRYにできないかなぁ
0322nobodyさん
2011/09/04(日) 17:19:13.65ID:???買う以外で
0323nobodyさん
2011/09/05(月) 00:01:34.99ID:???あとは自分で書き写したら内容を完全に覚えられるからいいと思う。
0324nobodyさん
2011/09/05(月) 21:59:00.60ID:???SQL Error: 1064: You have an error in your SQL syntax; check the manual that corresponds to
とかエラーが出ていた
データベースとの接続はできているしなんだろうと思っていたんだが
関数がうまく呼び出せてないっぽい
get_classでModelを表示させようとしたら表示がAppModelとかなってたんだけど
同じような現象になった方いませんか?
開発環境では何の問題もなく動くしget_classでModel名がちゃんと表示されるしわからん
0325nobodyさん
2011/09/05(月) 23:31:10.53ID:???routeで
Router::connect('/oresama', array('controller' => 'oresamakun', 'action' => 'index'));
とやっても、やっぱりForbiddenになってしまいます。。。
0327nobodyさん
2011/09/06(火) 00:10:43.75ID:???俺も見当付かないんだけど、データベースサーバー側のエラーと思えるから、データベース名 + 1064で検索するとか、エラーナンバーから詳細を引ける方法を調べてみると何か分かるんでないかな?
(まさかとは思うが、1064ってのは1064文字目って意味じゃぁないだろうなぁ)
0329nobodyさん
2011/09/06(火) 09:50:34.60ID:???0330nobodyさん
2011/09/06(火) 17:32:20.80ID:???0331nobodyさん
2011/09/06(火) 21:30:36.15ID:???サーバーはロリポップでPHPのバージョンは5.3.5で開発環境と一緒なんだ
しかしそうか
PHPの設定の違いを疑ってみるべきだったな
ありがとう!
>>327
違うページではAn Internal Error Has Occurredってエラーが出るから
データベースサーバー側かもしくは設定ミスってるのかなぁ
設定ファイルは最初に完璧であることを確認できたし考えにくいんだよな…
いろいろ調べてもわからなくて…
なぜオブジェクトがAppModelに…って考えてしまう…
0332nobodyさん
2011/09/07(水) 00:16:46.95ID:???訳わからん挙動に悩んだ際のうっかり系チェックリストを当てずっぽうで書いてみる。
どっかで文字コードが違うファイルが混入してるとかは?
あるいはBOMが入り込んでたりとか。
ver.1.xならば、ファイル名に大文字小文字が入り交じっていないか。
そのエラーが出るページと出ないページがあるのなら、
両者でどこが違うのかを切り分けてみてはどうだろう。
0333nobodyさん
2011/09/07(水) 08:22:43.86ID:???>ver.1.xならば、ファイル名に大文字小文字が入り交じっていないか。
これってやばいの?
俺modelのファイル名は大文字小文字使ってるよ
0334nobodyさん
2011/09/07(水) 11:19:19.67ID:???0335nobodyさん
2011/09/07(水) 13:25:42.21ID:???んや、ごめん、大文字小文字の件はCakeとは関係なかたかもしれん。
大文字小文字のポリシーが一貫していない状態でも、
windows開発環境だと動いてしまう。
Unix/Linux運用サーバーに投入した途端に呼び出し廻りで不整合が出だす、
ていうのがあるのかなとオモタ。
0336324
2011/09/07(水) 22:55:24.13ID:???なるほど
xamppで動かしていたんでたしかにありそうだ
ちょっと見てみる
ありがとう
テーブル使ってなくてもModelが使えないって変だよな
なぜ普通のModelをインスタンス化したものがAppModelになるのか…
多分じっくり考えないと無理そうなんで土日に頑張ってみます
0338nobodyさん
2011/09/09(金) 10:59:25.33ID:???0339nobodyさん
2011/09/09(金) 12:25:33.79ID:???0340nobodyさん
2011/09/09(金) 12:33:22.42ID:???0341nobodyさん
2011/09/09(金) 18:09:28.90ID:???0342nobodyさん
2011/09/09(金) 18:23:29.14ID:???0343nobodyさん
2011/09/09(金) 21:48:10.99ID:???0344nobodyさん
2011/09/09(金) 22:08:22.04ID:???自動テストって、Jenkinsみたいな事してみたいんかい?
昔の名前のHudsonでなら、PHPの自動テスト化の記事があった気がする。
>>343
CakeBookでもはっきりとココ、っていう事書いてないんだよね。
bootstrapあたりが無難じゃないかな。
機能分けして大きくなる予定ならvendor配下に入れておいて、app_controllerでimportしておくとか。
0345296
2011/09/09(金) 22:13:08.07ID:???http://book.cakephp.org/ja/view/899/
0346nobodyさん
2011/09/09(金) 23:20:34.77ID:???0347nobodyさん
2011/09/10(土) 23:05:30.23ID:???アクセスできないようにしたいんだけど、どうすればできますか
0348nobodyさん
2011/09/11(日) 00:01:16.07ID:???0352nobodyさん
2011/09/12(月) 00:23:37.99ID:???0353nobodyさん
2011/09/12(月) 00:27:18.43ID:???0354nobodyさん
2011/09/12(月) 00:38:16.74ID:???0358nobodyさん
2011/09/13(火) 22:55:23.32ID:???コンソールアプリからWWW_ROOTを参照すると、
アプリケーションディレクトリ配下のwebrootが返ってきてしまいます。
web画面からアクセスした場合は、ちゃんと設定した通りのパスが返ってきています。
コンソールアプリからはWWW_ROOT参照できないというような制約でもあるんでしょうか?
0359nobodyさん
2011/09/13(火) 23:07:43.48ID:???0360nobodyさん
2011/09/13(火) 23:36:20.60ID:???それがあらぬところを指し示してしまっているため困っています。
defineなので上書きも効かず。
0361nobodyさん
2011/09/14(水) 05:25:27.50ID:MD6DgTpSこのようにアクセスして、imagesコントローラのviewアクションで
サムネイルを生成して画像を表示させているんだけど、
なぜかCakePHPを介してこのようにアクセスすると、ファイルサイズが小さくならない。
viewアクションの動きは、上記を例にすると、
12345.jpgを縦135pxのサイズでimgejpg()を使って表示させる(横幅は比率維持)というものです。
/images/view/12345?height=1
このようにアクセスすると、縦幅1ピクセルの小さい画像が生成されるんですが、
ファイルサイズは17KBとかになってしまいます。
アクションの中身をそっくりそのままphpファイルにして、CakePHPとは無関係の場所でアクセスすると、
ファイルサイズも縮小分小さく(700Bぐらい)なっている。
誰か原因教えてくださいorz
0362nobodyさん
2011/09/14(水) 08:44:52.62ID:???0363nobodyさん
2011/09/14(水) 10:57:44.62ID:???0365nobodyさん
2011/09/14(水) 12:58:26.16ID:???function index(){
$hoge = 0;
$this->set('hoge',$hoge);
}
function ajax(){
$this->autoRender = false;
$this->uses = null;
Configure::write('debug',0);
$hoge = $hoge + 1;
$this->set('hoge',$hoge);
}
view側
<div id="div">
echo "$hoge";
</div>
<?php echo $ajax->link('ajax',ajax,array('update'=>'div')); ?>
ってやるとajaxで「$hoge空っぽなんだけど^^;」って言われるんですけど
ビュー側からコントローラー側へ変数を渡すにはどのようにすればよろしいのでせうか?
0366358
2011/09/14(水) 13:04:29.36ID:???コンソールアプリの場合、web画面からのアクセスとは異なり、
WWW_ROOTはcake.phpで定義されており、
アプリケーションディレクトリ配下のwebrootが指定されてました 。
cakebooksの応用インストール手順片手落ちじゃん。
それともcakeのバグなのかな?
どっちにしてもorz
0368nobodyさん
2011/09/14(水) 13:57:54.28ID:???何も値を渡して無いじゃないw
普通のリンクと同じ。$ajax->link(’title','ajax/1'.......)みたいにすればいい。
http://book.cakephp.org/view/1362/Methods
でもAjaxヘルパーはdeprecatedだからそろそろJsヘルパー使おうよ。
0369365
2011/09/14(水) 14:20:00.53ID:???<?php echo $ajax->link('ajax',null,array('update'=>'div','url'=>'ajax')); ?>
です
ここに書いたのは簡略化してるけど、ページネーションしたいだけなんです。
でもSQLが命名規則に適してないから$this->Dammy->query("$sql");みたいに直打ち
で、直打ちしたらページネーションが使えなくなった
だから何とか再現したいと、とりあえずAjaxでカウントアップ作ろう
って事になりました。
function indexで入れた$sqlと
ページ数出してる$nowpageさえ取り出せればいいんですけどね。
>>368
「Ajax使え」と、お上からのお達しやでぇ…
0370368
2011/09/14(水) 14:40:37.39ID:???後半はどうでもいいけど、
一旦Ajaxの事は忘れて、普通のリンク($html->link)でコントローラーの$hogeに値を入れる方法を考えて。
どういうURLを渡したら$hogeに値が入るか。
それがわかったらviewの$html->linkの所を$ajax->linkにすればいい。
0371361
2011/09/14(水) 14:47:07.01ID:MD6DgTpSすいません、今は問題をシンプルにしようと、引数は受け取っていないのでした。
http://phpspot.org/blog/archives/2007/02/phpphpthumbnail.html
これを使って、
$tn_image = new Thumbnail("sample.jpg", 0, 1, 0);
$tn_image->show();
こういうサイズ・画像を決め打ちにしています。
ちなみに最初は上記のクラスライブラリを使わずに自分のコードでサムネイルを作っていました。
自分で書いたコードのせいかと思い、上記のライブラリを使ったのですが、結果は変わらずです。
上記の単純なコードをphpファイルとして単純にアクセスすると
サムネイルが表示され、ファイルサイズも小さくなってくれます。
このことからコードは正しく動いていると思います。
なぜかCakePHPのコントローラにするとファイルサイズが小さくならないのです。
0373365
2011/09/14(水) 15:09:54.34ID:???わからんっ
なるほど、自分の場合は基礎ができてないんだな
いきなりCakePHPから入るんじゃなくて
ちゃんとPHPから勉強する事にする
0374361
2011/09/14(水) 15:10:19.72ID:MD6DgTpSおおおお!!
Cakeで生成した画像にCake の出すエラーのビューHTMLが含まれていました!
ありがとうございます!!!!
こんなバイナリでも見た目は全く正常な画像出してくれるんですね。。。ややこしい。。
0375nobodyさん
2011/09/14(水) 16:33:07.35ID:???さすが秀和…
変数の受け渡しなんて全くと言っていいほど出てこない
ギブアップ 答えください
0376nobodyさん
2011/09/14(水) 16:55:54.59ID:???0377nobodyさん
2011/09/14(水) 17:10:44.90ID:???ビューからコントローラへの受け渡しって無くない?
HTMLヘルパー使う記述なんて全然出てこないわ
0378nobodyさん
2011/09/14(水) 17:16:59.34ID:???0379nobodyさん
2011/09/14(水) 17:21:12.04ID:???みんなどんな本読んでんの?
0380nobodyさん
2011/09/14(水) 19:38:49.94ID:???難しく考えないでいいって。
CookBookのチュートリアル程度の基礎知識はあるとしてだけど。
http://book.cakephp.org/ja/view/1528/
ビューからコントローラへの受け渡しって言うけど、
ブラウザのURL欄に http://example.com/コントローラ/アクション/パラメータ
って手で入れるのと同じことだから。
そしたらコントローラー側では
function アクション($hoge) {......)
で$hogeにパラメータが入るでしょ。
0382nobodyさん
2011/09/15(木) 07:16:07.93ID:???サンプル探そうと検索したんですが出てこないし・・・
出来れば使い方も教えてもらえると助かります。
0383nobodyさん
2011/09/15(木) 10:15:18.66ID:???0384nobodyさん
2011/09/15(木) 11:10:47.97ID:???<?php echo $ajax->link('ajax',null,array('update'=>'div','url'=>"ajax/$hoge")); ?>
function ajax($hoge){ echo "$hoge"; }
これで$hogeの内容が出力される
こうなる
0386nobodyさん
2011/09/15(木) 16:20:43.36ID:???<?php echo $ajax->link('ajax',null,array('update'=>'div','url'=>"ajax/$hoge")); ?>
↓コントローラーの一部
function ajax($hoge){ echo "$hoge"; }
だろJK
0387nobodyさん
2011/09/17(土) 01:22:15.55ID:???■usersテーブル(会員データを保存)
id、name、created
■photosテーブル(会員が投稿した写真を保存)
id、user_id、name
こういうテーブル構成になっているとします。
users→photosはbeLongsToの関係です。
Authでログインした後、$this->Auth->user();を参照しても
結合しているphotosのデータが取得されません。
どうしたらいいのでしょうか?
0388nobodyさん
2011/09/17(土) 10:02:38.89ID:???0389nobodyさん
2011/09/17(土) 12:29:19.70ID:???全テーブルに年月日を保持するcreated、modifiedを作った方がトラブル時に確認しやすいよ。
0390nobodyさん
2011/09/17(土) 15:06:11.30ID:???photosテーブルのuser_idにキーを宣言し忘れとか
単純なミスじゃないの?
あと全テーブルにcreated、modifiedをいれるって。。
余計なカラムをいれると負荷かかるじゃん
トラブル時の解決はqueryログ追え
0391nobodyさん
2011/09/17(土) 21:35:18.42ID:???入れ忘れじゃないです。
Authのログインだとアソシエーションが反映されないようで、
ログインを手動にして、認証後に>>388してセッションに保存しています。
しかし、なにか違和感があるので、他に出来ないかと思い、質問しました
0392nobodyさん
2011/09/17(土) 23:04:06.83ID:???$this->Auth->user()
したあとに
$this->Photo->find()
0393nobodyさん
2011/09/17(土) 23:23:51.64ID:???0394nobodyさん
2011/09/18(日) 00:28:32.69ID:???0395nobodyさん
2011/09/18(日) 01:37:22.47ID:???0396nobodyさん
2011/09/18(日) 05:29:34.33ID:???0397nobodyさん
2011/09/18(日) 08:56:11.27ID:???そもそも認証系にテーブル結合するような設計が間違いと思う。
認証系て
■userテーブル
ID
名前
ログイン時間
登録時間
でいいじゃん。
photosテーブルてカラム内容からして
認証と関係なさそうだし。
一度認証したら
memchachedでIDと名前をもたせとけばいい
認証系にテーブル結合する意味がないし
セキュリティ的にも負荷的にもよくない
0398nobodyさん
2011/09/18(日) 09:46:57.95ID:???>そもそも認証系にテーブル結合するような設計が間違いと思う。
と言う事は、あとから必要になったら
その都度findしてデータを持ってくるのが正しいやり方なんですね。
Cake使う前も認証時には画像(プロフィール画像とか)を
ログイン時に保存していました。毎回参照する物なので。
でも、やり方が間違っていたのだと気づきました。
みなさん、アドバイスありがとうございます。
0399nobodyさん
2011/09/18(日) 10:30:05.38ID:???そもそも
users->photosがhasOneで
photos->usersがbelongsTo
0401nobodyさん
2011/09/19(月) 07:28:38.94ID:???いや、やりかたは間違ってるとは思わないよ。
ただAuthコンポーネントは結合されたテーブルの中身は
持ってこないというのが現状の仕様だからとしか言いようがない。
Authコンポーネントはリクエスト毎に呼び出されるから
結合させると重くなるとかが理由じゃないかな。
0402nobodyさん
2011/09/19(月) 11:28:37.42ID:???左右2カラムのサイトを作成時、左側のカラムが固定で特に変更しなくて良い場合に
レイアウト機能でうまく対応できないでしょうか?
入門書には以下のように書かれていますが
<body>
<?php echo $content_for_layout; ?>
</body>
たとえば以下の、左カラムにユーザ作成のコンテンツを表示できるでしょうか?
<div id="leftcolumn">
<?php echo $???????????; ?>
</div>
<div id="rightcolumn">
<?php echo $content_for_layout; ?>
</div>
0403nobodyさん
2011/09/19(月) 11:48:51.45ID:???cakephpでフォームからデータベースに保存と
同時にメール送信をしたいと考えてます。
テストでビュー、コントローラー、モデル、
それからコンポーネントにQdmailを入れてみて
起動させてみたのですが、メール送信ができて
いません。
去年、自作でphpを書いたときは、PCのphp.iniを
いじって送信が出来たのですが、今回はそれでも
上手くいきません。
どなたか、フォームからデータベースに保存と
同時にメール送信するサンプルプログラムなど
をご存知の方は見えませんでしょうか?
私自身、プログラムの知識はかじった程度で
今も手探りで作っております。
プログラムひとつまともに動かせない情けない
人間ですが、どうか、お願い致します。
0406nobodyさん
2011/09/19(月) 17:33:50.70ID:???CakePHPじゃなかったらメール送信できてるの?
cakephpを入れる前の自作メールは上手くいきました。
mb_send_mailでヘッダー情報などと一緒に
送っていました。
ただ、今はこちらも動きません。
元々htmlのフォームからphpプログラムにゆく
形でした。
cakephpを入れるとルートがおかしいのか、MVC
の形にしてないのが問題かわかりませんが
「そのhtmlコントローラーが無い」とエラーに
なって確認が出来ません。
0408nobodyさん
2011/09/19(月) 18:23:55.03ID:???0409nobodyさん
2011/09/19(月) 18:32:59.67ID:???しました。
プライベートアドレスはスパムばっかり来る
ためメールソフトが使えなかったので、web上で
確認できるYahooとGmailでテストしました。
php.iniをいじったのは、Yahooで受信する設定
をするためmail functionの項目SMTPサーバーの
設定をするためだったと思います。
0411nobodyさん
2011/09/19(月) 19:41:41.50ID:???「サーバにアップしてテストした」の意味が違くね?
>Yahooで受信する設定
>をするためmail functionの項目SMTPサーバーの
>設定をするためだったと思います。
Yahooのサーバーで、CakePHPという意味でサーバにアップしてテスト・・・という意味だと思うのだが。
すみません、しっかりと書いておりませんでした。
YahooやGmailを使って上手くいったのは、自作
phpプログラムの方です。
cakephpでのメール送信のテストはまだしておりません。
localでテストした段階までのところです。
一度、サーバーに上げて試してみます。
申し訳ありません。
0414nobodyさん
2011/09/19(月) 23:57:31.64ID:???localでやっていたものそのままで、フォーム→
確認→データベース保存・メール送信→完了
画面の順に移行する内容です。
エラーは無く、データベースに保存(日本語文字
化け)されてメールは送信されてません。
コントローラーのメール送信のプログラムに
問題があるのでしょうか?
0416nobodyさん
2011/09/20(火) 09:34:49.14ID:???0417nobodyさん
2011/09/20(火) 11:47:17.94ID:???状況次第でDELETE xxxx WHERE 1=1というSQLを発行する、恐ろしいバグがあるなんて…
お前らも気を付けろよ、新しいVerでは直ってるらしいが
0418nobodyさん
2011/09/20(火) 12:18:50.41ID:???元々JSPとかで直接書きだったから独自の書き方が非常に面倒くさい。
0419nobodyさん
2011/09/20(火) 23:57:00.98ID:???0420nobodyさん
2011/09/21(水) 08:48:21.43ID:???それよくあるね。
怖すぎだわ。
一度、本番のデータ死んで、
おれも死のうかと思ったけど、
バクアッブから復元して、
うやむやにしてまだバレてないわ、。
0421nobodyさん
2011/09/21(水) 08:55:03.71ID:???みたいに「全消し」が動作する場合は何か確認が欲しいよね
0422nobodyさん
2011/09/21(水) 10:17:39.13ID:???ものすごいバグじゃね?もっと騒がれても良いはずなんだが
0423nobodyさん
2011/09/21(水) 10:23:30.12ID:???俺も本番のデータ飛ばした
バックアップ先にも反映されて消えちゃったから、バイナリログ漁って新しめのデータだけ復旧したわ
涙目になりながら
ちなみにこれな
http://cakephp.lighthouseapp.com/projects/42648/tickets/250-model-delete-bug
なんか見てると対応もグダグダ
今は直っているはずだが、怖いのでDELETE発行する時は直接query書いてる
0424nobodyさん
2011/09/21(水) 10:33:05.33ID:???0425nobodyさん
2011/09/21(水) 10:44:39.71ID:???rm -rf /
0426nobodyさん
2011/09/21(水) 14:15:39.58ID:???だから問題ないって話じゃないな
前代未聞の糞フレームワーク
0427nobodyさん
2011/09/21(水) 14:47:49.22ID:???オレオレだと最低限、自分で把握してるから、こういうミスは無いけども
0428nobodyさん
2011/09/21(水) 16:23:32.55ID:???今のバージョンsmartyの対応もしてないんだぜ?
0429nobodyさん
2011/09/21(水) 16:36:42.58ID:???0430nobodyさん
2011/09/21(水) 16:56:15.40ID:???0431nobodyさん
2011/09/21(水) 17:25:51.23ID:???smartyはどう見てもオワコンだろ
0432nobodyさん
2011/09/21(水) 17:52:48.56ID:???Smartyはオワコンったらオワコン!
うわああああああああああああああ
0433nobodyさん
2011/09/21(水) 18:37:25.48ID:???それともテンプレートエンジン自体がオワコンなのか?
0434nobodyさん
2011/09/21(水) 19:30:49.47ID:???0436nobodyさん
2011/09/22(木) 01:15:30.77ID:???じゃ、仕事で「自分でテンプレの文章変更したい」
とかクライアントが言い出したらどうするの?
変更させないようにするの?
それともブログみたいに一部のみにするのか?
0437nobodyさん
2011/09/22(木) 11:37:15.86ID:???クエリでテーブル渡すという機能がありながら
ページネーションは規則に沿わないといけないとか
page(SQLで取り出したテーブル,項目数)とかそんなシンプルなんでいいんだYO
0438nobodyさん
2011/09/22(木) 12:04:27.46ID:???0439nobodyさん
2011/09/22(木) 12:06:09.72ID:???悔しいです
0440nobodyさん
2011/09/22(木) 12:12:01.17ID:???0441nobodyさん
2011/09/22(木) 12:14:58.36ID:???オレオレの仕様を覚えるのって、そんなに時間かからないだろうし。
一人で作ってる奴なら別にFW意識しなくても良いだろうしな。
0442nobodyさん
2011/09/22(木) 13:34:41.12ID:???作る時間がないから仕方なくFW使ってるだけ
作れるならオレオレが一番良い
0443nobodyさん
2011/09/22(木) 13:36:52.81ID:???なんか使用者多そうだから使ってみたけど、どうやらそうでもないし
バグはあるし、使いにくいし
昔の自分にアドバイス送れるなら、Cakeはやめとけ、と言う
0444nobodyさん
2011/09/22(木) 13:47:24.08ID:???だから、オレオレでもCake風のコーディングが出来るように作ってるし。
0445nobodyさん
2011/09/22(木) 13:49:12.50ID:???0446nobodyさん
2011/09/22(木) 14:07:15.81ID:???メンテナによほど恨みがあるらしいな
0447nobodyさん
2011/09/22(木) 14:17:33.00ID:???配列で各部分が。findの結果を連想配列で取得できるけど
俺にはこれがわかりやすい。どのテーブルのデータか判断付くし。
0448nobodyさん
2011/09/22(木) 14:17:49.44ID:???0449nobodyさん
2011/09/22(木) 16:28:49.56ID:???他のシステムで使ってたテーブルがそのままじゃ使えないって不便すぎる
0450nobodyさん
2011/09/22(木) 16:52:37.81ID:???モデルで変更できるんだし。
0451nobodyさん
2011/09/22(木) 18:29:48.82ID:???と使用してきたけどCakeだけは2度と使わないだろうと思う。
余計なおせっかいが多すぎ
使いこなせたら強力なんだろうけど
0452nobodyさん
2011/09/22(木) 18:50:18.02ID:???0453nobodyさん
2011/09/22(木) 18:50:40.25ID:???要は使ってる人が減ってるって事だろ、だから新しい情報がないと
どの程度のものなんじゃね
俺は、まあ、これで作っちゃったシステムがあるから仕方なくそのまま使ってる
0454nobodyさん
2011/09/22(木) 18:51:03.02ID:???0455nobodyさん
2011/09/22(木) 19:34:23.65ID:WQS0mmbwrequire_once('Net/UserAgent/Mobile.php');
$agent = Net_UserAgent_Mobile::singleton();
と書いて、switchで
case ($agent->isDoCoMo()):
$carrer = 'docomo';
というふうにやったんですが、
これを書いたファイル内では$carrerは使えるんですが、
このlayoutを利用しているviews側のctpファイルでは$carrerが未定義ってなってしまいます
どうやったら利用できますでしょうか
ご教示くださいますようよろしくお願いいたします
0456455
2011/09/22(木) 20:44:02.48ID:WQS0mmbwお騒がせしました
0457nobodyさん
2011/09/23(金) 18:23:45.86ID:???誰も擁護しないw
0458nobodyさん
2011/09/23(金) 23:56:56.15ID:???0459nobodyさん
2011/09/24(土) 00:01:50.33ID:???0460nobodyさん
2011/09/24(土) 00:02:48.61ID:???0462nobodyさん
2011/09/24(土) 01:28:56.78ID:???0463nobodyさん
2011/09/24(土) 02:54:17.08ID:eksj+xv1でもCakePHPのが日本語情報多いですし、仕事も多いです。
0464nobodyさん
2011/09/24(土) 04:35:56.69ID:???0465nobodyさん
2011/09/24(土) 05:02:05.78ID:???COBOLとか年中募集している。
0466nobodyさん
2011/09/24(土) 06:06:20.47ID:???0467nobodyさん
2011/09/24(土) 09:00:49.62ID:???0468nobodyさん
2011/09/24(土) 09:43:13.69ID:???初心者向けの本が多く出てるってこと?
0469nobodyさん
2011/09/24(土) 10:13:39.17ID:???なにかつまったら、検索してみると大抵、同じところで詰まってた人のブログから解決方法が見つかる。
0470nobodyさん
2011/09/24(土) 20:17:12.55ID:???0471nobodyさん
2011/09/24(土) 20:41:37.90ID:???俺はそれで困った
0472nobodyさん
2011/09/24(土) 21:26:46.36ID:???1.2系の、1.3系には使えないネタが多くてちょっと苦労した。
0473nobodyさん
2011/09/24(土) 21:48:18.36ID:???テンプレートの拡張子が違うのに気づかなかった事あったし。
でもまぁ、「こういう風にする、こういう風にしたい」ってゆーか、あやふやだが、そういった雰囲気がつかめればあとはマニュアルとブログを交互ににらめっこしてればなんとか分かるっつーもん・・・かな。
0474nobodyさん
2011/09/24(土) 22:44:31.20ID:???実際使ってみて困った問題は、他人のブログなどを頼りにせざるを得ないね
回数は少ないが、このスレで助けられたこともある
海外の掲示板に頼ったこともあった
ひとまずCakeに関しては、>>417のバグでテーブル全部消された恨みは一生忘れん
0475nobodyさん
2011/09/25(日) 02:27:45.92ID:???メール送信プログラムですが、シンプルにして
もどうも上手くいきません。
orz
コントローラーのプログラム内容が間違って
いるのは確実なのですが、どのように直したら
よいのかわかっていません。
公開処刑を覚悟でその部分のコードを書きます
ので、愚かな私に、どうか、お知恵を貸して
いただけないでしょうか?
よろしくお願いします。
に渡してメールを送信する形です。
プログラム部分はcakephpでない自作phpプログラム
で上手くいったときのものを入れました。
以下、問題と思うプログラム部分です。
どうか、お力をお貸しいただけますよう、お願いします。
(メール送信部分L31〜L58)--
function soushin(){
//文字コード設定
mb_language("ja");
mb_Internal_encoding("UTF-8");
//件名
$subject = "お問い合わせ";
//宛先
$to = "〇〇〇〇@yahoo.co.jp";
//POST受取
//差出人メールアドレス
$header = "From:".$_POST["mailaddress"];
//本文
$body. = "名前:".$_POST["name"]."\n";
$body. = "内容:".$_POST["naiyou"]."\n";
if(mb_send_mail($to,$subject,$body,$header)){
echo "メール送信成功しました。";
}else{
echo "メール送信失敗しました。";
}
$this->redirect("./index");
}
Undefined index: mailaddress[app/controller/〇〇_controller.php,line45]
Undefined index: name[app/controller/〇〇_controller.php,line47]
Undefined variable: body[app/controller/〇〇_controller.php,line48]
Undefined index: naiyou[app/controller/〇〇_controller.php,line48]
メール送信成功しました。(文字化け)
cannot modify header information - headers already sent by 〜
[CORE/cake/libs/controller/controller.php,line744]
------------------
L743〜L745
function header($status){
header($status);
}
この程度のプログラムが組めない情けない人間
ですが、どうか、お力をお貸し下さいますよう
お願いします。
0480nobodyさん
2011/09/26(月) 00:20:55.39ID:???Undefined ??は変数未定義。前レスくらい読め。
cannot modify header information - headers already sent by 〜
はredirectの前に文字が出力されている(Undefinedの表示)ので
redirectできないっていう意味。これもググれば頻出の現象。
mb_send_mailはtrueを返しているんだから
引数が間違ってるか、送信先のメールアドレスで弾かれているとか。
引数の$to,$subject,$body,$headerくらいはvar_dumpして狙いどおりの
値が入っているか追ってみろ。
よくあるのは、Fromとサーバのドメイン違いで迷惑メール扱いされるパターンとか。
0481nobodyさん
2011/09/26(月) 00:44:04.02ID:???viewからポストされたデータの受け取り方ぐらいは知っときましょうや。
http://book.cakephp.org/ja/view/963/
あとデバッグも済んでないのにいきなりsendmailに流すのは止めた方がいいわ
0482nobodyさん
2011/09/26(月) 04:36:04.08ID:???CakePHPではみなさんどのようにしていますか?
今のところ1個のモデルにフロントエンド、バックエンドのメソッドなどが一緒くたになっていてモデルが膨れ上がりつつあって困っています
0483nobodyさん
2011/09/26(月) 09:41:19.51ID:???0484nobodyさん
2011/09/26(月) 09:52:25.70ID:???ビューとコントローラーは表示と処理的な物ってわかるけど
モデルがよくわかんない
MySQLのテーブル名が規則に反してる時にしか使ってない
0485nobodyさん
2011/09/26(月) 10:29:59.47ID:???なにかしら損してるぞおまえ
0486nobodyさん
2011/09/26(月) 13:29:50.40ID:???ロジックをモデルに書くのは、つまりクラスと同じでデータのふるまい(型)を定義したものがモデルだから。
…と解釈してる。
0488nobodyさん
2011/09/26(月) 16:42:19.28ID:???画面を作りのたいのだけど、どうすればいいですか?
今ビューテンプレート内に
<? PHP
$form->text();
$ajax->submit("追加");
という感じにAjaxのサブミットボタンを用意したのですが、入口としてはこれであっていますか?
0489nobodyさん
2011/09/26(月) 16:45:26.64ID:???2/3しか使ってないから損してるのはわかるけど
勉強してる本に載ってるモデルの使い方がそれしかなかった
秀和システムの「CakePHP1.3によるWebアプリケーション開発」って本
別の本教会に行ってくる
0490nobodyさん
2011/09/26(月) 17:01:14.92ID:???0491nobodyさん
2011/09/26(月) 17:17:43.19ID:???無宗教だよ!!先祖の墓に行っても「なまんだー」だよ!!
0492nobodyさん
2011/09/26(月) 17:29:47.78ID:???http://old-journal.sooey.com/2008/03/26/717/
こういうの読むといいよ
というか、もしRailsを使ったことがないなら
CakePHPで勉強するより、Railsを触ってみる方が勉強になると思うよ
0493nobodyさん
2011/09/26(月) 17:41:09.22ID:???俺もその本で勉強したけど、嘘つけ
バリデーションや入力値チェックメソッドの例あったろうが
そういうのを全部モデルに押し込んでいかないと、コントローラーが肥っちまうんだよ
0495nobodyさん
2011/09/26(月) 18:16:23.00ID:???モデルというのは一般的にはビジネスロジックと言われてるヤツだ
と言っても分からんだろうから
受け取ったデータを処理する部分
とでも思ってくれ。
プログラムの本質はデータ処理であって、表示などの見かけは勝手にやってくれってこった
0497nobodyさん
2011/09/26(月) 21:19:31.37ID:???submitにupdateを指定しないと。
でも今から勉強するならAjaxヘルパーじゃなくてJsヘルパーにしましょう。
0498nobodyさん
2011/09/26(月) 22:29:13.42ID:???1.3の時は2週間ごとにRC更新して、RC4の次が正式版リリースだったけど、今回も同じパターンだろうか
2.0は9/5にRC1、9/19にRC2と来たから、10/2にRC3、10/16にRC4、10/30に正式版リリース!
0499nobodyさん
2011/09/26(月) 23:09:02.22ID:???期待していいのだろうか…
0501nobodyさん
2011/09/27(火) 00:21:40.21ID:???Rubyなんて全然知らないんだけど
0502nobodyさん
2011/09/27(火) 00:56:23.70ID:???今んところまだまだいろいろさまよってる感じですねぇ
0504nobodyさん
2011/09/27(火) 11:29:16.20ID:???と、SQLからデータを持ってきて($sqlにはStringでSQL文が入力されています)
for($i = 0;$i < count($table);$i++){
$arr = $table[$i];
echo "<tr>";
echo "<td nowrap>{$arr['shin']['NO']}</td>";
echo "</tr>";
}
という感じでテーブルを出力してるのですが、
データの項目が多くなってくると表示する量が多くなるので
5件ずつ出力したいと思っています。
ページネーションを使って$tableの中身を5件ずつ出力するには
どうすればいいのでしょうか、ご教授お願いします。
0505nobodyさん
2011/09/27(火) 17:56:03.91ID:???http://book.cakephp.org/ja/view/1231/%E3%83%9A%E3%83%BC%E3%82%B8%E4%BB%98%E3%81%91-Pagination
0506nobodyさん
2011/09/27(火) 19:21:12.62ID:???0507nobodyさん
2011/09/27(火) 23:54:02.59ID:???お礼が遅くなって、申し訳ありません。
改めて、有難うございました。
いろいろと試行錯誤の上、メール送信は
とりあえず送れたのですが、迷惑メール扱いと
文字化けと送るべきフォームの内容が入って
いませんでした。
orz
var_dumpして確認したとき、既に入ってなかった
ので、私の引数のいれ方が間違っているの
だろうと思います。
cannot modify 〜 はまだ出ますので、問題の
あるcake/libs/controller/controller.phpを
いじってみようと思います。
また行き詰まってしまったらご相談に来るかも
しれません。
しばらく自力でトライしてみますので、どうか、
よろしくお願いします。
0509nobodyさん
2011/09/28(水) 02:27:19.81ID:???問題はそこには無いぞw
0510nobodyさん
2011/09/28(水) 11:20:31.89ID:???読みつつ無い頭でウンウン考えて
$table = $this->Shin->query("$sql");
$table = $this->paginate();
for($i = 0;$i < count($table);$i++){
$arr = $table[$i];
echo "<tr>";
echo "<td nowrap>{$arr['Shin']['NO']}</td>";
echo "</tr>";
}
とすれば表示件数がページネーションで指定した件数になりましたが、
$sqlのSQL文が反映されていないようです。
>>504の方法ではテーブル名が「shin」でよかった(MySQLのテーブル名)のに対し、
この方法で実行すると「Shin」(modelで設定した名前)になってしまいます。
0511nobodyさん
2011/09/28(水) 12:06:10.11ID:???$this->Shin->query("$sql") の後に$this->paginate(); やっても意味無いっしょ。
2回クエリを発行してる。
基本的な$this->Model->find()の使い方とかわかってますか?
paginate()はfind()に毛が生えたようなものなので、find()と同じように条件を与えればいい。
どうしても$this->Model->query()を使うなら、
データを持ってくる範囲のLIMITの計算とかORDERとか、最後まで面倒みるつもりで。
0512nobodyさん
2011/09/28(水) 12:19:09.47ID:???そのWebサービスにはint型を渡さなくてはいけません。
その後の返り値をCakeのビュー内に表示するということをやりたいのです。
0513nobodyさん
2011/09/28(水) 12:21:13.41ID:???>基本的な$this->Model->find()の使い方とかわかってますか?
わかってない…です。
SQL文を直接書いて、ページネーションはできないという事でしょうか?
0514nobodyさん
2011/09/28(水) 12:28:11.88ID:???ちょ、おま・・・
何のためにCake使ってんだよ
SQL直接もできるけど、パスってなんですか?って聞いてくる自称サッカー選手にオフサイド教えるようなもん
0515nobodyさん
2011/09/28(水) 12:55:14.36ID:???PHPに触れた事がない状態で
「CakePHP使ってコレ(Webページ)作って」と言われたからです。
JSPならわかるんですけど、同じようなものだと思って受けてしまいました。
0516nobodyさん
2011/09/28(水) 13:02:54.75ID:???0517nobodyさん
2011/09/28(水) 13:03:53.38ID:???相手方のインターフェイスにもよるけど単純にRESTとかなら
ライブラリのHttpSocketのマニュアル見ればいい
0518nobodyさん
2011/09/28(水) 13:25:59.52ID:???よく引き受けたな。会社なら上司からの指令かもしれないけど、
それにしたって全く触った事がないんじゃ、敷居が高すぎるぞ。
0519nobodyさん
2011/09/28(水) 13:46:01.43ID:???「PHP触った事ないです」とは伝えたんですけどね、
「わからなかったら調べながらやって」とポケットリファレンスだけ渡されまして。
ここ1週間ほどページネーションでずっと詰まってます。
ビュー側で条件の入力をテキストボックスやチェックボックスで行って
それをサブミットしてコントローラ側で受け、if文でSQLの条件式を追加していく
そのSQL文を実行して、得た内容をテーブルに表示。
という感じで作ってみたものの、
表示件数が多くなるとそれだけ1ページの表示量も増えてしまう、
かといってページネーションを使おうとするとSQL文が使えなくなってしまう。
という状態です。
0520nobodyさん
2011/09/28(水) 14:00:41.03ID:???Cakeの機能は使わずにプレーンなSQLでやるにしてもページ数とか今見てるページに合わせて
SQL中のLIMITとか設定すればいいだけで難しくは無いことでしょ。
ただそれを簡単にするためのフレームワークなんだから本末転倒だけどw
やっぱ本家のcookbookのブログチュートリアルぐらいはやっておいた方がいいかと。
0521nobodyさん
2011/09/28(水) 14:58:24.86ID:???上司が
0522nobodyさん
2011/09/28(水) 16:03:07.45ID:???はできてるので、後は自己満足の世界なんです。
本版環境でどれだけのデータが入るのかわからないので、
できる事はやっておいた方が良いかなと
0523nobodyさん
2011/09/28(水) 17:28:03.46ID:???可哀想か?519にやらせる事自体が無謀だろ。
他に書いてるけど、スポーツが得意だからって、
野球選手にサッカーの試合でろって言ってるのと同じだ。
他の奴はどうか知らんが、PHPで5年開発してる俺でも
ネットで調べたり、ロジックに長考したりするのに、
全く経験無い奴が出来るはず無いだろ。
0524nobodyさん
2011/09/28(水) 18:00:14.11ID:???経験のあるかたいらっしゃいますか?
int型の引数をウェブサービスから渡し、帰り値をString型のXMLで受け取る格好です。
どうかよろしくお願いします。
0525nobodyさん
2011/09/28(水) 18:10:56.43ID:???上司の頭がかわいそうだなw
時間があるなら、訳分からなくてもいいから、ひととおりCookbook見てからやった方がいいぞ
他のフレームワークと比べて、CakePHPは癖が強いから
>>524
まず、「ウェブサービスとは何か?」を理解してから質問したら?
0526nobodyさん
2011/09/28(水) 18:19:57.43ID:???勉強し直せと言いたくなるのは分かるがw
0528nobodyさん
2011/09/28(水) 20:16:11.62ID:???0529nobodyさん
2011/09/28(水) 21:22:47.59ID:???JSPもわかってないでしょ。
O/RマッピングやMVCが理解できてなさそうだし。
Webアプリ開発の初歩からやり直したほうがよさそう。
メール送信のプログラムで、どうしても上手く
いきません。
頭がこんがらがってきました。
orz
もし、よろしければご理解のある方、お力を
お貸しいただけないでしょうか?
毎回、教えて君で、自分自身情けなく思って
おります。
ただ、どうしてメール送信が上手くいかないの
か、どうプログラムを組めば上手くいくのか
解決がなかなか導けません。
どうか、お願い申し上げます。
0531nobodyさん
2011/09/29(木) 00:05:36.06ID:???マニュアル読む。チュートリアルを自分の手を動かしてやってみる。
ぐらいはやったんだろうね?
function soushin(){
//文字コードの部分は省略します
//件名
$subject = "お問い合わせ";
var_dump($subject);
//宛先
$to = "〇〇〇〇@yahoo.co.jp";
var_dump($to);
//Undefined 〜 を回避するため引数を初期化
$mailaddress = "";
$name = "";
$naiyou = "";
$header = "";
$body = "";
//フォームからデータを受け取り
extract($this->params["form"]);
$this->data = array("モデル名" => array());
$this->data["モデル名"]["mailaddress"] = $mailaddress;
$this->data["モデル名"]["name"] = $name;
$this->data["モデル名"]["naiyou"] = $naiyou;
//差出人メールアドレス
$header = "From:"."$mailaddress";
//本文
$body. = "名前:"."$name"."\n";
$body. = "内容:"."$naiyou"."\n";
//確認
var_dump($header);
var_dump($body);
}
"お問い合わせ""〇〇〇〇@yahoo.co.jp""From:""名前:""内容:"
本来、「:」の後にフォームのデータが入るように
考えたのですが、全く入ってません。
Undefined回避のための初期化した段階で全て
無しになったのでしょうか?
フォームから引数に渡す際、
$mailaddress = $this->data["モデル名"]["mailaddress"];
とした方が良いのかも?と思いやってみたの
ですが、これだとUndefined 〜 が表示されて
エラーになります。
Undefined〜を表示させない他の方法で、php .iniに、
error_reporting(E_ALL & ~E_NOTICE);
を設定すれば良いという話があったのですが、
既にサーバー側には指定されており、
function soushin(){ 直後に書いても変わりませんでした。
私のプログラムの書き方が間違っているから
上手くいかないのはわかりますが、現在、
どこを直せば上手くいくのかわかりません。
どうか、お力をお貸し下さい。
お願い致します。
0534nobodyさん
2011/09/29(木) 00:33:40.42ID:???そのレベルのことでつまずいていて、なおかつ社内で誰もサポートしてくれないのなら、
他のまともな会社か別業界に転職した方がいいだろ
どうしてもCakePHPでメール送信のコードを書きたいというのなら、まずはPHP入門本を一冊読んでから始めた方がいい
0535nobodyさん
2011/09/29(木) 00:52:24.52ID:???GOOD LUCK
失礼しました。
一度、cakephpから離れてもう一度、phpから
勉強し直します。
メール送信は、まだ、解決してませんが、
少し時間がかかっても、なんとか自力で解決
方法を探してみます。
お時間とらせてすみませんでした。
ご返事、有難うございました。
0537nobodyさん
2011/09/29(木) 13:05:27.99ID:???どの関数を使えばいいか整理がつかない
0538nobodyさん
2011/09/29(木) 14:25:08.77ID:???Dreamweaverだとしっくりこない
0539nobodyさん
2011/09/29(木) 16:17:33.56ID:???コードでエディタなんてどれも大差ないだろ。
0540nobodyさん
2011/09/29(木) 17:11:42.57ID:???0542nobodyさん
2011/09/29(木) 18:23:43.46ID:???これをXMLのテキストとして受け取る方法はあるのでしょうか?
よろしくお願いします。
0543nobodyさん
2011/09/29(木) 19:46:26.25ID:???0544nobodyさん
2011/09/29(木) 20:38:47.84ID:???cakehtmlのプラグインでシンタックスもインデントもある程度満足。
0545nobodyさん
2011/09/30(金) 00:05:38.41ID:???0546nobodyさん
2011/09/30(金) 12:30:59.81ID:???0547nobodyさん
2011/09/30(金) 13:05:43.74ID:???eclipse pleiadesall in one
0549nobodyさん
2011/10/01(土) 15:43:40.10ID:???公式から解凍したフォルダを既存サイトのフォルダにいれると競合したファイルがあったりするんですがやり方が間違っているのでしょうか
ご教示下さいますようお願い致します
0550nobodyさん
2011/10/01(土) 15:51:28.83ID:jK5skCaAgroupやjoinなどを使ったときのページングとかどうしてる?
0552nobodyさん
2011/10/01(土) 21:28:38.37ID:???0553nobodyさん
2011/10/01(土) 21:59:39.27ID:???0554nobodyさん
2011/10/02(日) 14:39:03.17ID:???ローカル上ではリクエスト・レスポンスの速度は問題無いのですが、レンタルサーバーにアップすると反応が10秒以上かかります
フレームワーク本体のソースは特に変更はしていません
同様の構成で、同じ様な事象の方がいましたら、問題点や解決方法を教えていただけませんか?
version 1.3.12
サーバー ロリポップ
0556nobodyさん
2011/10/02(日) 23:08:37.50ID:???>>554です
回答ありがとうございます
Javaがメインの為、詳しい事が分から無いので、これから調べてみます
0558nobodyさん
2011/10/03(月) 01:05:34.50ID:???ひとまずの遅い箇所の特定が出来ました
dispatcher.php の _invoke 一行目
$controller->constructClasses()
$this->log での時間になりますが、上記の処理を通過する度に約三秒かかる事が分かりました(サーバー)
ローカルでは一秒未満です
調べたところ、コントローラーに必要なモデルを読み込むとありますが、
自身の各コントローラーで利用しているモデルは二つ以下です
何か設定の間違いや、チューニングの余地はあるのでしょうか?
0559nobodyさん
2011/10/03(月) 09:59:13.23ID:???0560nobodyさん
2011/10/03(月) 13:21:13.04ID:???システム設定として読み込めるようにしています。
ページ推移する毎に何度もfindでデータを取ってくるのではなく、
ファイルに書き出してファイルをincludeする方法があったと思うのですが、
どういうやり方だったか失念しました。
ご存じの方は教えて下さい。よろしくお願いします。
0561nobodyさん
2011/10/03(月) 14:05:58.29ID:???bootstrap.phpで、
dbから設定を読み込んでConfigure::storeでキャッシュに書き込んでおくと
各コントローラー等からはConfigure::readで読み出せるようになる。
すでにconfigureファイルのキャッシュがあるときはdbから読み出しはスルーする。
設定変更時にはキャッシュをクリアする。
と言った感じで俺はやってます。
0562nobodyさん
2011/10/03(月) 14:54:28.12ID:???それってcookbookにやり方書いてますかね?
設計図が想像出来ないので、どうググって良いかわかりません・・・
0563nobodyさん
2011/10/03(月) 15:04:04.72ID:???やり方わかる人いますか
本当に成功する?
0564nobodyさん
2011/10/03(月) 15:35:02.70ID:???俺は使ったこと無いけど
https://github.com/cakephp/datasources
0565nobodyさん
2011/10/03(月) 15:50:56.06ID:???0567nobodyさん
2011/10/03(月) 20:05:58.58ID:???CSVなんて何書いてあるかなんてまったく保証できないし
0568nobodyさん
2011/10/04(火) 22:41:08.80ID:???0569nobodyさん
2011/10/04(火) 22:45:11.70ID:???はい次
0570nobodyさん
2011/10/04(火) 22:48:09.19ID:???どちらが仕事ありますか?
0571nobodyさん
2011/10/04(火) 23:07:55.06ID:???はい次
0572nobodyさん
2011/10/04(火) 23:16:29.60ID:???その時はrailsの仕事が増える。
以前のperl vs phpのときは
phpの方が明らかに生産性と可読性が高く
phpを選ぶ理由が沢山あった。
rubyの場合はwebに特化した言語という思想ではなく
気持ちよくプログラミングするという思想なので
HTMLにどう吐き出のが便利とか
JavaScriptと連携するには、どうしたら便利とか
Flashと連携するには、どうした便利とか
ruby開発者(松本)は、そこまで考えてはくれない。
0573nobodyさん
2011/10/04(火) 23:28:24.52ID:???>2.0.0-RC3 marks the end of the release candidates for 2.0.
RC3の次に正式版リリース!?
0574nobodyさん
2011/10/04(火) 23:30:19.20ID:???どちらが安全性は高いですか?
どちらがプラグインやソースは情報豊富ですか?
0575nobodyさん
2011/10/05(水) 00:44:43.34ID:???0576nobodyさん
2011/10/05(水) 14:16:29.39ID:???不要なファイルを全て読み込み、classを保持するから重い。
逆にこれを改善できれば(あるいは開発者が指定できれば)
Cakeが一番のFWになると思っているのですが、違いますか?
0577nobodyさん
2011/10/05(水) 14:20:56.50ID:???その10秒かかるページが表示されるまで表示されないんだけど、なぜこうなるの?
cakePHP使わずにやれば表示されるし
DBかファイルがロックされてるのかと思って調べたけどよくわからなかった。
テーブルが被らず、ビューキャッシュされてるページでもダメだった。
php初めて一ヶ月だから勘違いかもしれないが。 ver1.3.7
0578nobodyさん
2011/10/05(水) 16:24:00.48ID:???2.0は不要なファイルは読み込まないようになったんじゃなかったっけ?
ただそれだけで他のフレームワーク比で軽くなるとも思えないけど
0579nobodyさん
2011/10/05(水) 18:01:54.87ID:???余計なファイル読まない・実行しないなら
内部メモリも使用しないから、軽くなりそうなんだけどな。
2.0の情報が少ないから、
どの程度まで改善されているのか分からないのが不安だ
0580nobodyさん
2011/10/05(水) 22:17:47.97ID:???CakePHPは、やりたい事を見た目楽にできる、クールに記述できる、ということにコードの行数を割いてるから、そんな早くもならないt思うよ
よーするに、規約が複雑になりすぎたんだな
そのお陰で、他のフレームワークと比べてメソッドが肥大化している
0582nobodyさん
2011/10/05(水) 23:41:53.02ID:???csvファイル読み込む方式はメモリ食いつくしてサーバーダウンするからやめとけ
csvデータをキャッシュで維持させると、さらに簡単にサーバーは死ねる
0583nobodyさん
2011/10/05(水) 23:51:12.22ID:???複合主キーをサポしてないってことは
ソーシャルゲームで友達テーブルとかつくったら
ORマッピングで実装できんなw
友達テーブル
----------------------
自分ID(PK) 相手ID(PK)
プロフィールテーブル
----------------------
自分ID(PK) 名前
友達とプロフィールテーブル結合して
名前を出すなら、ベタsqlで実装せんとあかんなw
0585nobodyさん
2011/10/06(木) 00:40:14.05ID:???sql負荷について軽視しすぎてる
革命を起こすなら
アソシエーション に
フルスキャンデバッグ機能や
カーディナリティデバッグ機能を付ければよい
要は実行計画の自動化
0586nobodyさん
2011/10/06(木) 00:48:51.62ID:???テーブルの正規化を自動でしてくれるツールを作ろうと思ってる。
DB設計を最適化するツール
phpMyadminに組み込めば面白いことになる。
0587nobodyさん
2011/10/06(木) 00:51:21.72ID:???0588nobodyさん
2011/10/06(木) 01:15:30.66ID:???よくわからんバグが多い
APCと一緒に使うとセッションがバグって使えなかったり
散々な目に遭った
0589nobodyさん
2011/10/06(木) 01:57:33.21ID:???0590nobodyさん
2011/10/06(木) 01:59:50.52ID:???モデルでやりとりさせてよ。。
0591nobodyさん
2011/10/06(木) 02:04:19.35ID:???0592nobodyさん
2011/10/06(木) 08:44:16.16ID:???工数
大規模アクセス前提で
0593nobodyさん
2011/10/06(木) 09:45:30.62ID:???rails人口は、まだ少ないので
一手が欲しくなったときが致命的
プログラムを極めたいなら rails
webで挑戦して手っ取り早く稼ぎたいなら php
0594nobodyさん
2011/10/06(木) 12:01:32.21ID:???そこがすごい直感的じゃないし
分かりにくいよね
なんでrailsみたいにオブジェクトにしなかったんだろ
0596nobodyさん
2011/10/06(木) 12:26:12.75ID:???0597nobodyさん
2011/10/06(木) 12:26:31.55ID:???どのフレームワークも慣れれば工数の違いは、ほとんどない。
railsの場合は1からライブラリを作る機会が多いと思う。
Cakephpの場合は使いたいライブラリーは、ぐぐったら、その辺に転がってることが多い。
CakePHP 使えるものは、使わせてもらう
rails 使えるものがないから、自分で作る
この差が工数として影響がでる。
セキュリティー面はどんなフレームワークでも
自身で対策コードを書くしかない。
0598nobodyさん
2011/10/06(木) 12:40:28.32ID:???ありがとう。覚えやすさはどちらかな?
CakePHPで一番有名な認証系(ログイン、サインアップ、メールでのアクティベート)プラグインって何になりますか?
0599nobodyさん
2011/10/06(木) 13:27:28.33ID:???0600nobodyさん
2011/10/06(木) 13:46:04.40ID:???あと確認画面等がついているAuth関連のプラグインも知りたいよ。ログイン以外全部自分で作るのはけっこう大変なんだ
0601nobodyさん
2011/10/06(木) 14:31:07.87ID:???0602nobodyさん
2011/10/06(木) 14:37:49.66ID:???0604nobodyさん
2011/10/06(木) 17:16:41.59ID:???ttp://d.hatena.ne.jp/basuke/20110908/1315479931
0605nobodyさん
2011/10/06(木) 17:25:40.33ID:???これ見ると、俺も”オレオレ”ではエンティティ方式で書いてた。
けど、この書き方だと統一感無いので配列の方が良いと思って今に至る。
人それぞれ好みがあるんだな。
0606nobodyさん
2011/10/06(木) 18:21:01.06ID:???0607nobodyさん
2011/10/06(木) 18:21:07.06ID:???basuke氏って今PHPやってるんだ。昔からのMacユーザーならノメモバスターには世話になったはず
0608nobodyさん
2011/10/06(木) 19:41:43.25ID:???ユーザーが少ない
昔は多かったのかな、2009年あたりのブログ記事はいっぱい引っかかるね
0609nobodyさん
2011/10/06(木) 21:10:11.81ID:???0611nobodyさん
2011/10/06(木) 21:22:38.07ID:???0612nobodyさん
2011/10/06(木) 21:44:51.07ID:???0613nobodyさん
2011/10/06(木) 22:20:04.58ID:???オブジェクト指向に慣れると面倒臭いだろ
0614nobodyさん
2011/10/06(木) 23:05:55.82ID:???0615nobodyさん
2011/10/07(金) 02:58:35.15ID:???オブジェクトのほうが柔軟に対応できるし、DRYにしやすい。
まあ結局は好みなのか。
0616nobodyさん
2011/10/07(金) 03:28:21.26ID:???0617nobodyさん
2011/10/07(金) 09:31:35.56ID:???一つ一つコードを書いていくのか、プラグインなど利用しているのか。
0618nobodyさん
2011/10/07(金) 16:34:15.60ID:???0619nobodyさん
2011/10/07(金) 22:27:16.26ID:???0620nobodyさん
2011/10/07(金) 23:39:44.94ID:???その手があったか
ソッチの方がシンプルに実装できそうだな
俺はわざわざprefixとか利用してadmin_indexみたいな形でやってたわ
0621nobodyさん
2011/10/07(金) 23:46:38.35ID:???すっかりCakePHPの流儀に染まって忘れてた。
0623nobodyさん
2011/10/08(土) 00:57:12.99ID:???0624nobodyさん
2011/10/08(土) 01:56:19.44ID:???同じデータベースのテーブルを扱うにしても
そのテーブルにあえて違うオブジェクト名を用途別につけてあげて、
それぞれの用途でそのオブジェクト(テーブル)を操作していく。
そんな認識であってるのかな?
0625nobodyさん
2011/10/08(土) 08:50:18.96ID:???別に、RDBのテーブルだけじゃなくて、LDAPのデータを取りに行く(っつーか、
データを保持っつーかアクセスする)もんもオブジェクトとして考えられるし、
アクセスする方法があるのなら、ブックマークにアクセスしてオブジェクトとして扱うブックマークオブジェクトも考えられる。
たまたま、RDBのテーブルの内容が、オブジェクトとして扱えるだけ、ってーことなんよ
(まぁ、「たまたま」じゃなくて、そういう風に設計してるからなんだけどな)
0626nobodyさん
2011/10/08(土) 08:53:17.08ID:???>そのテーブルにあえて違うオブジェクト名を用途別につけてあげて、
>それぞれの用途でそのオブジェクト(テーブル)を操作していく。
同じテーブルでも、抽出の仕方や、扱い方で別物として分けた方が分かりやすい、という場合に違う名前のオブジェクトになる、ってーことで、「あえて」じゃないかな
例えば、ユーザーテーブルを、パスワードとの照合も合わせた機能を認証Objectとして扱う場合、とか。
0627nobodyさん
2011/10/08(土) 13:11:35.70ID:???本来、ヘルパーの使用ってコントローラーでやるべきじゃね?
出来るためビューにPHPのコード書かないのが望ましい気がする。
0628nobodyさん
2011/10/08(土) 13:13:26.29ID:???出来るためビューに → 出来るだけビューに
0629nobodyさん
2011/10/08(土) 13:41:18.79ID:???だが、例えばHTMLとして出力するときと、CSVとして出力する時はエスケープの仕方が違うので、最低限そういった処理をヘルパーとしてviewでしているのは正しい。
0630nobodyさん
2011/10/08(土) 16:07:36.63ID:???if ($data['User']['status'] == 1) {
echo '公開';
}
みたいな書き方するけど、こういうのってビューで書くのおかしいと思う。
0631nobodyさん
2011/10/08(土) 16:25:05.56ID:???<? echo $model->getStatus(); ?>
みたいにしたい。
getStatusの中で分岐。
0632nobodyさん
2011/10/08(土) 17:05:40.35ID:???<?php if (!$this->Session->check('Auth.User')): ?>
<a href="<?php echo Router::url('/users/register'); ?>">新規登録</a>
<?php endif; ?>
こういうのもあなた的にはおかしいんですか?
0633nobodyさん
2011/10/08(土) 17:06:25.80ID:???「表示を司るプログラムを書く場所」だと思えばいいんじゃないの
>>631
elementからrequestActionを投げるのがそれに近いのでは。
0634nobodyさん
2011/10/08(土) 18:11:29.06ID:???そうすると、どう考えてもビューをデザイナーがいじる事は無理だよね。
CMSでよくある、管理画面からテンプレート(ビュー)を編集とかも。
0635nobodyさん
2011/10/09(日) 00:02:17.84ID:???ケースバイケースだけど
これは、デザイナーよりの分岐なので
デザイナーに編集してもらった方が楽
これくらいの分岐条件ならデザイナーでも、わかると思う。
これを関数で処理するとなれば、HTMLタグを関数内に入れる事になる
要は新規登録のリンクをヘルパーとして扱うのは、効率的に悪い。
新規登録のリンクは、関数として何度も使うことが無い。
新規登録、会員登録の分岐は、それ用にビューをつくっておいて
メインのビューから読み込ませればよい
0636nobodyさん
2011/10/09(日) 01:06:32.27ID:???効率と保守性の問題。
0637nobodyさん
2011/10/09(日) 01:12:35.73ID:???みんなよくやるね
0638nobodyさん
2011/10/09(日) 01:39:02.71ID:???phpコードを埋め込んだビューにデザイナが手を付けることはない。
デザイン出来上がり
↓
プログラム組み込み
0639nobodyさん
2011/10/09(日) 03:21:51.21ID:???0640nobodyさん
2011/10/09(日) 03:28:03.09ID:???0641nobodyさん
2011/10/09(日) 12:35:10.57ID:???0642nobodyさん
2011/10/09(日) 14:10:24.41ID:???0643nobodyさん
2011/10/09(日) 20:53:40.00ID:???configフォルダのこと?
>>642
bootstrapだと全ファイルにincludeされて重くならないかな
気にするほどではない?ファイルサイズは100KBないぐらい
0644nobodyさん
2011/10/09(日) 21:57:21.11ID:???で、bootstrap.phpでincludeしている。
この方が自分が見た目でも分かりやすし、管理しやすいよ。
0645nobodyさん
2011/10/09(日) 22:51:40.43ID:???0646nobodyさん
2011/10/09(日) 22:58:39.45ID:???Configureクラスに、必要に応じて設定を読み込ませられるメソッドがあった、ってーこと。なんだったかな。。。
そいつを使うと、確かconfigフォルダにファイルを置いておけば、ファイル名渡してやると必要に応じて読み込めたよーな。
0647nobodyさん
2011/10/09(日) 23:59:56.16ID:???mypageというコントローラーがあって、
日記の表示なら/mypage/diary_list、編集なら/mypage/diary_edit
というアクションにしているのですが、
これをするとmypage_controller.phpのソースが長くなります。
皆さんはどうしていますか?diary_controller.phpを作って
そこでindexとかeditのアクションを作っていくパターンでしょうか?
0649nobodyさん
2011/10/10(月) 02:48:07.86ID:???言語というフォルダがあるとして
1.Japanese
2.English
3.Spanish
4.Chinese
とレコードがあるとしたら
リレーションキーとなるフィールドは別途数字フィールドを用意したほうがいいですか?
それとも
JAN
ENG
ESP
CHN
のように省略系の入った文字列フィールドで繋ぐのはありですか?
後者のほうが頭に入れておきやすいのですが
0650nobodyさん
2011/10/10(月) 02:59:56.10ID:???フォルダと書きましたが
テーブルでした。
0652nobodyさん
2011/10/10(月) 16:46:07.88ID:???いくつか方法思いついたけど、根源の「listとeditだけで気になるほどソースが長くなる」症状がどういうものかが分からんからなんとも言えん。
確か、CakePHPを使う人が勘違いするパターンとかいう話であったが、本当はモデルに実装するべき処理をコントローラーに置いてしまっていないか?見てみるといいかも
>>649
何のために言語分けるのか分からんのだけど、localeは使わないん?
0653647
2011/10/10(月) 20:56:02.88ID:???mypageというテーブルがあるのではなく、
mypageと言うのは、マイページ=会員専用のページという意味です。
diaryはタイトルとか内容がある、普通の日記です。(例として出しました)
>>652
findを書くだけでも1つのコントローラーに書いていけば長くなりませんか?
あと、652さんのレスを見ると、私の質問でいうと
「diary_list」とか「diary_edit」にするのが一般的なのでしょうか?
ソースが長くなっても視認性は劣りますが、
「みんなそうしてるよ。気にするな」であれば良いのですが・・。
0654nobodyさん
2011/10/10(月) 21:28:47.85ID:???http://d.hatena.ne.jp/hiromi2424/searchdiary?word=cakephp%20behavior
^ここのがモデルをカスタマイズする上でかなり参考になると思う。
>findを書くだけでも1つのコントローラーに書いていけば長くなりませんか?
^については、条件多ければそりゃ長くなるだろうけど・・・おいらのとこだと受け取ったパラメータ配列をfindに渡すくらいの長さになるかな。
よほどそのメソッドにおいて特殊な事をするんでない限り、モデル側に出す、というのが「良い」パターン、という感じみたいだ
0655nobodyさん
2011/10/10(月) 23:56:03.51ID:???結果をコントロールで受け取って、ビューに渡す
[HogeModel]
public function latestComments{
return $this->find('all', array(...));
}
[HogesController]
public function index()
{
$this->set('models', $this->Hoge->latestComments())
}
みたいな。
0656nobodyさん
2011/10/11(火) 00:58:11.55ID:???基本的にはこんな感じなんだな。ってのがbakeで生成されたコードみればだいたいわかるしょ。
0657nobodyさん
2011/10/11(火) 02:08:32.71ID:???0658647
2011/10/11(火) 02:55:12.36ID:???findの書き方は別として、私が悩んでいるのは
>「diary_list」とか「diary_edit」にするのが一般的なのでしょうか?
という部分であったりもします。
>>655さんのレスを見ると、diary_list・diary_editみたいなアクションを
コントローラーに作成していくパターンで良いのかもしれませんが、
普通は、「機能名_動作」というアクションにするので、
ここに違和感があるわけです。
この部分に関して言及されていないので、
気にしなくても良いのかもしれませんが、
気にしないとURLが変わるので、私としては気になります。
0659647
2011/10/11(火) 03:01:25.43ID:???----------
>>654-655
findの書き方は別として、私が悩んでいるのは
>「diary_list」とか「diary_edit」にするのが一般的なのでしょうか?
という部分です。
>>655さんのレスを見ると、diary_listやdiary_editみたいなアクションを
コントローラーに作成していくパターンで良いのかもしれませんが、
普通は、「機能・コンテンツ名=コントローラー」「動作=アクション」になるので、
diary_listみたいに1つのアクションにするのは違和感があります。
この部分に関して言及されていないので、
気にしなくても良いのかもしれませんが、
気にしないとURLが変わるので、私としては気になっています。
0660nobodyさん
2011/10/11(火) 07:00:41.81ID:???0661nobodyさん
2011/10/11(火) 12:50:17.13ID:???0662nobodyさん
2011/10/11(火) 14:18:27.66ID:???function内で設定した内容を次回に持ち越す
というような事をするにはどうすればよいのでせうか?
▲保存されたデータがあるか
┃保存されたデータの呼出し
╋━━━━
┃SQLの発行
┃呼び出したデータの保存
▼
みたいな
0663nobodyさん
2011/10/11(火) 14:41:18.46ID:vJdgBzio趣味程度に使っているよ
0664nobodyさん
2011/10/11(火) 14:55:23.16ID:???例えば Test1 テーブルと Test2 テーブルがあったとして、
この2つのテーブルから Test1, Test2 それぞれでなく、
あわせて新着順に10個の項目を取得する方法はありますでしょうか?
0665nobodyさん
2011/10/11(火) 15:19:09.96ID:???0666nobodyさん
2011/10/11(火) 20:36:20.80ID:???0667nobodyさん
2011/10/11(火) 23:51:50.92ID:???cache
普通はよくアクセスするページの保存に使うが、sqlの結果そのものを保存する場合にも使っちまおう、というのも見かけた事がある。ADOdbの確かメソッド名のどこかにcacheとか名前ついてるやつ。
だがまぁ、ふつうは次回に持ち越すなどと考えないでpagenationを使うもんだ
0668nobodyさん
2011/10/12(水) 10:56:19.39ID:???0669nobodyさん
2011/10/12(水) 11:34:38.64ID:???Aを表示(SQL読み込み)→B表示→ページ移動→A表示(再読み込み)
って流れになってるから
Aを表示(テーブル保存)→B表示→ページ移動→A表示(保存したテーブルから読み込み)
っていうのをやりたい
0670nobodyさん
2011/10/12(水) 14:18:11.65ID:???コントローラーからfindの結果を取得して
それをpaginateにしてビューに渡すと言った事が出来るのでしょうか?
もし出来る場合はソースの書き方を教えて下さい。
0671nobodyさん
2011/10/12(水) 14:29:40.83ID:???$data = $this->paginate();
$this->set('data',$data);
}
0672nobodyさん
2011/10/12(水) 16:09:12.63ID:???function index(){
$this->paginate = $this->ModelName->methodName();
$this->set('data', $this->paginate());
}
0673nobodyさん
2011/10/12(水) 16:39:49.89ID:???それは普通にコントローラーでpaginateしてるだけですよね?
そうではなくて、findの箇所はモデル内で作成しています。
それを取得してpaginateのfind箇所を置き換えられないかと思い質問しました。
#test_controller
$list = $this->Test->getFind($options);
$this->set('test_list', $this->paginate($list));
こういうイメージです。(もちろんこれでは動きませんが...)
0674nobodyさん
2011/10/12(水) 17:02:09.88ID:???モデルの中で自己流でfindをオーバーライドしてるなら
_findAll,_findCount,_findFirstあたりもきちっとつくらねばならん。
この辺はPagenateがどういう動きをしてるか、Modelクラスのソース追って下さい。
0675nobodyさん
2011/10/12(水) 17:29:23.61ID:???ずーっとJavaやってたからJavaベースで思い浮かぶのがそもそもの敗因
0676nobodyさん
2011/10/12(水) 18:01:53.84ID:???1つのファイルにif入れたり、コントローラーからsetするのも限界があるし。
(ソースが汚くなって見づらいから、ファイルを分けた方が視認性が良くなる
0677nobodyさん
2011/10/12(水) 19:33:00.65ID:???findしたデータをpaginateするんじゃなくて、paginateにSQLを渡すイメージ
じゃないと、findで余計なデータをメモリに持っちゃうじゃん
http://book.cakephp.org/ja/view/1237/カスタムしたクエリによるページ付
0678nobodyさん
2011/10/12(水) 19:34:28.35ID:???http://book.cakephp.org/ja/view/1237/%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%A0%E3%81%97%E3%81%9F%E3%82%AF%E3%82%A8%E3%83%AA%E3%81%AB%E3%82%88%E3%82%8B%E3%83%9A%E3%83%BC%E3%82%B8%E4%BB%98%E3%81
0680nobodyさん
2011/10/12(水) 23:14:24.71ID:???672を書いたものですけど、勘違いされてるようなのでもう少し詳しく書くと
モデル :
function methodName($user_id)
{
return array(
'fields' => array('...'),
'conditions' => array('ModelName.user_id' => $user_id),
'order' => array('Hoge.id DESC'),
);
}
コントローラ :
function index(){
$this->paginate = $this->ModelName->methodName($this->Auth->user('id'));
$this->set('data', $this->paginate());
}
みたいな感じです
あなたがいうモデルでfind組み立てて、コントローラでpaginateに代入し、ビューに渡すという流れです
0681nobodyさん
2011/10/13(木) 15:33:11.40ID:???せっかく説明していただいたのに申し訳ないのですが、希望は違います。
findだけで済む箇所とpaginateまで生成したい箇所があるので、
コントローラーでそれを操作したいと思い、>>670のように質問しました。
680さんのは基本的なオプション指定だけをモデルに書いて
それをpaginateに渡すイメージですが、そうではありません。
0682nobodyさん
2011/10/13(木) 18:19:08.28ID:???以下が妥当かと。
モデル:
public function getFind($paginate=true)
{
$criteria = array(
'fields' => array(...),
'order' => 'Word.id DESC',
);
if ($paginate)
return $criteria;
else
return $this->find('all', $criteria);
}
コントローラ:
public function ページネーションするアクション()
{
$this->paginate = $this->ModelName->getFind();
$this->set('models', $this->paginate());
}
public function ページネーションしないアクション()
{
$models = $this->ModelName->getFind(false);
$this->set(compact('models'));
}
0684nobodyさん
2011/10/13(木) 19:35:17.24ID:???今はhelperに書いてcontrollerからも読み込むようにしてるけど普通?
0685nobodyさん
2011/10/13(木) 19:56:53.48ID:???興味なのだが、viewとcontroller共通の処理って何?
その2つで共通なら、逆にmodelに書くべきと思うが。
0686nobodyさん
2011/10/13(木) 21:26:35.92ID:???コントローラクラス内で各メソッドがデータを共有操作できるメンバー変数のようなものはもてないでしょうか?
例えば、indexが呼ばれるたびに1加算されて表示されるようなことがしたいです。以下の方法はダメでした
public $ii = 0;
fanction index() {
echo $ii;
$ii++;
}
$iiのデータが共有されるのは全ユーザではなく、ユーザ単位である必要があります。
0687nobodyさん
2011/10/13(木) 21:31:40.05ID:???modelも違うかな…そもそも設計間違ってるのか
0689nobodyさん
2011/10/13(木) 23:05:30.03ID:???質問元と違うが、controllerの方でパンくずリストを登録して、viewの方で表示する場合など
0690nobodyさん
2011/10/13(木) 23:58:06.07ID:???・投稿されていたらその画像を表示。そうでなければno_image.gifを表示
という2つの処理をするだけでもviewに書いていくと汚くなるんだよな・・・
だからヘルパー作るかコントローラーでfind後に再処理する方が良いと思う
0691nobodyさん
2011/10/14(金) 08:54:54.73ID:???これらは違いがあるのでしょうか?
0692nobodyさん
2011/10/14(金) 11:14:03.92ID:???リクエストがGET → $this->params
0693nobodyさん
2011/10/14(金) 12:01:41.71ID:???間違いなの?
0694nobodyさん
2011/10/14(金) 12:05:51.56ID:???ifとか
0695nobodyさん
2011/10/14(金) 13:09:12.64ID:???コントローラー名/アクション名/引数
の引数の部分にファイル名を渡したら、.jpgなどの部分だけ削除されてコントローラーが受け取ってしまう
どうすれば拡張子の部分も受け取れますか?URLエンコードしても同じだった
0698nobodyさん
2011/10/14(金) 18:09:04.28ID:???bakeしてみたコントローラ見てみるとif ($this->data) などという風に使われている。「出来るから間違いじゃない」という意味では間違いじゃないんだろうが、CakePHPの規約としてはdata使うようになってるみたいだね。
(cookbookだかチュートリアルのどこかにフォームのデータを一元化する為にdataを使うのが正しい、というような事が書いてあった希ガス)
0699nobodyさん
2011/10/14(金) 18:45:42.02ID:???696じゃないけど、viewに渡すデータ自体の画像の部分をno_image.gifに置き換えちゃうってことじゃないの?
そうすればデータには必ず画像が入ってるからviewはすっきりする。
ただ、MVCの役割を考えるとそこでやるべきかどうかは考えた方がいいかもね。
0700nobodyさん
2011/10/15(土) 00:20:40.03ID:???>>665で言われてる結合する、というのがよくわからないんです。
find の第2引数で 'joins' というのがありますが、
これだと 'conditions' でそれぞれのテーブルの対応するフィールドの値を入れてやって関連づけを行わないといけないですよね?
SQL はほとんどわからないので、的外れなことを言ってるかもしれませんが、
2つのテーブルを関連性などなしで単純に全て混ぜてしまって作成日で降順をかける、なんてことは可能でしょうか?
詳しく解説などされているサイトなど教えてもらえると助かります。
0701nobodyさん
2011/10/15(土) 00:23:22.40ID:???0703nobodyさん
2011/10/15(土) 00:42:16.57ID:???まあどのバージョンでも同じ話ではあるけど。
0705nobodyさん
2011/10/15(土) 01:44:09.51ID:???なるほど。そう言う意味か。
俺はafterFind使わずに全てviewでやってるな。
日付のフォーマット変更する時もヘルパー作って。
でも、ヘルパーで対応するのは限界があるし、ifが増えて困ってたんだ。
afterFindを使いこなしてviewの内容を簡素にするのも有りだな
0706700
2011/10/15(土) 02:13:04.18ID:???もう少し詳しく教えてもらえますか?
DB 側で View を定義っていうのは具体的にはどういうことでしょうか?
0708nobodyさん
2011/10/15(土) 16:01:05.22ID:???ビューの作り方はデータベース名 view とかビューとかで調べればすぐ分かるよ。
(データベースによって細かいとこ違った気がするから、自分で調べた方がいい)
要件に合ってるか分からんけどな。
0709nobodyさん
2011/10/15(土) 17:06:30.92ID:???0710700
2011/10/15(土) 18:45:56.65ID:???まさにそうでした。
MySQL に View という機能があるということなのですね。
今調べ始めましたが、MySQL文はちんぷんかんぷんなので苦戦中です。
View を作ってそこからデータを取ればいいということは理解しました。
みなさんありがとうございました。
0711nobodyさん
2011/10/16(日) 10:45:57.40ID:85Bgp1nuとありますが、それはすなわち、Ruby開発者
まつもとゆきひろ がいなかったら
Cake phpは生まれなかった? ということですか。
0712nobodyさん
2011/10/16(日) 10:47:33.20ID:???というよりむしろ、Rubyがここまで広まったのはRailsがあったから、って事だったんじゃないかなぁ。
0714nobodyさん
2011/10/16(日) 11:09:56.42ID:85Bgp1nuかかわっていですけど、CakePHPが影響をうけた
Ruby on Rails は まつもとゆきひろがいなかったら
生まれてなかったわけですよね。
0715nobodyさん
2011/10/16(日) 11:11:11.55ID:???PHPの部分は好きな言語に変えろや
0716nobodyさん
2011/10/16(日) 13:25:11.56ID:???RouterがURLを解釈してくれるからですよ。
$this->paramsを覗いてみればいいよ。
もしくは http://example.com/controller?arg=eroero.jpg みたいに普通のGetで渡すか。
行き詰まったらとりあえずdebug($hoge);で状態を把握すべきすよ。
0717nobodyさん
2011/10/16(日) 15:03:58.44ID:???確か拡張子が $this->params->url['ext'] とか、そんなとこに入ってたかと。
たとえば hoge/test.jpg で $this->params->url を debug したら、
Array(
'ext' => 'jpg'
url'' => hoge/test
)
こんな感じになってる。
だからコントローラーで拡張子の有無を調べてやるといいと思う。
0718nobodyさん
2011/10/16(日) 15:38:22.27ID:???0719nobodyさん
2011/10/16(日) 16:36:56.47ID:???どうしてRuby on railsのスレは冷たい人間が多いの?
選択するFWでこんなにも平均的な人間性に優劣がつくもんなの?
0720nobodyさん
2011/10/16(日) 17:08:46.25ID:???だから悪い奴のレスが目立つのであって、いい人もいるだろ。
ただし、悪いレスが多いスレにいい人が書き込むかは疑問だが。
0721nobodyさん
2011/10/16(日) 17:46:52.93ID:???一所懸命マニュアル書いた奴がいるんだから一所懸命マニュアル読め。ってのは間違ってない。
0722nobodyさん
2011/10/16(日) 18:01:49.02ID:???おみゃーさんだってたとえば、三角関数の授業してる時に乗算の話が分かりません!なんて奴居たら追い出したくなるだろ?
まぁ問題は、大抵、質問してる奴は、自分がレベル低すぎってーのを分からないし認めたくないってー所にあるんだよな。
0723nobodyさん
2011/10/16(日) 18:12:58.04ID:???$data = $this->User->findById($id);
if (!empty($data)) {
$this->set('data', );
} else {
$this->redirect('/user/error');
}
}
function delete($id){
// detailと同じ内容
if ($this->data) {
// 削除用のソース
}
}
こんな感じのuser_controller.phpがあるとします。
削除(delete)する際に登録されているデータを表示して
「このデータを削除しても良いですか?」という画面を表示したいのですが、
deleteアクションにdetailと同じソースを書いてるので違和感があります。
何か良い書き方は無いでしょうか?
0724nobodyさん
2011/10/16(日) 21:04:13.48ID:???標準で出てなかったっけ?
Javascriptでダイアログが出ると思ってたんだけど。
それじゃなくて、わざわざ削除してもいいですか画面だしたいのなら、削除してもいいですかアクションを作るか、状態を記録して、フラッシュで表示してやるとかなんとかだろうなぁ。
0725nobodyさん
2011/10/16(日) 21:15:43.58ID:85Bgp1nusmarty式ですか?
php直書き式ですか?
0726nobodyさん
2011/10/16(日) 21:55:26.93ID:???javascriptをオフにしてるユーザーが多いでしたけど
現在はどうなんでしょ?
そこらへんも考えて開発すべき?
0727nobodyさん
2011/10/16(日) 22:53:07.52ID:???ajaxと付くものは総じてjavascript有りきの機能です。
よほどのひねくれ者以外、javascriptをOFFにしていたら、Googleすら不便に感じる時代です。
ONにしていると考えてよいです。
クロスブラウザ設計を考えて、jqueryなどのjavascript用FWを導入するのを強くおすすめします。
0728723
2011/10/16(日) 23:38:10.16ID:???いや、そう言う質問じゃなくて、>>723のようなソースを書くと、
「詳細画面」以外にも同じようなコードを書く必要があるので、
どうにか簡略化できないものか?と思っての質問です。
あと、javascriptではなくて、確認画面を出したいのです。
0730723
2011/10/17(月) 01:01:02.78ID:???↓こうするという事ですか?
function delete($id){
$this->detail($id);
if ($this->data) {
$this->User->deleteAll(array('User.id' => $id));
}
}
これでも問題ないと思うのですが、、後々困らないか心配・・・
0731nobodyさん
2011/10/17(月) 01:11:58.70ID:???729はこういうことを言いたかったんだと思う。
function detail($id){
$this->_common($id);
}
function delete($id){
$this->_common($id);
if ($this->data) {
// 削除用のソース
}
}
function _commonl($id){
$data = $this->User->findById($id);
if (!empty($data)) {
$this->set('data', );
} else {
$this->redirect('/user/error');
}
}
0732nobodyさん
2011/10/17(月) 01:44:47.56ID:???プログラムやってなくていきなりCakeから入っちゃう人が多いの?
0733nobodyさん
2011/10/17(月) 09:27:29.40ID:???0734nobodyさん
2011/10/17(月) 10:37:11.07ID:???http://bakery.cakephp.org/articles/lorenzo/2011/10/16/cakephp_2_0_released
0735nobodyさん
2011/10/17(月) 11:52:25.10ID:???0736nobodyさん
2011/10/17(月) 13:02:10.50ID:???なんなんだよこれ・・・
0737nobodyさん
2011/10/17(月) 13:05:01.05ID:???タイムゾーンがどうのって注意はされたけど普通に焼けたよ。
でも既存サイトを移行すんのは結構手間っぽいな。
0738nobodyさん
2011/10/17(月) 13:29:20.58ID:???あれ?
Notice: Undefined index: text みたいのが出まくるんだが・・・
ディレクトリ構成とか、だいぶ変わってるねぇ
0739nobodyさん
2011/10/17(月) 13:59:43.23ID:???0740nobodyさん
2011/10/17(月) 20:03:21.73ID:???2ページ目になぜか10件表示されるんですが、これを5件にする方法ありますか?
0741nobodyさん
2011/10/17(月) 21:09:15.91ID:???0742nobodyさん
2011/10/18(火) 02:25:37.24ID:???みじんも思ってないとこが怖い
0743nobodyさん
2011/10/18(火) 11:21:54.03ID:???特別な処理をした時にセッションが切れてしまうのですが、わかる人がいれば教えていただけないでしょうか?
やっているのは、Flashで簡単なバイナリデータ(画像)を作成し、それをpostしてファイルとしてサーバ側で保存しています。
サーバ側はAuthコンポーネントでログイン管理を行っています。
さらに不思議で、PC起動後1回目に上記の現象が発生するのですが、もう一度ログインするとセッションは切れません。
0744nobodyさん
2011/10/18(火) 13:07:51.49ID:???0745743
2011/10/18(火) 14:33:00.58ID:???ローカル、ネット共に発生します。
Flash側のpost先はフルパス(http://www.・・・・)で指定しています
0746nobodyさん
2011/10/18(火) 15:18:12.43ID:???ログインしているURLが異なる事はありませんか?
0747743
2011/10/18(火) 15:58:06.45ID:???おおおおお、ありがとうございましたm(_ _)m
初めはURL手入力で、
http://hoge.jp でアクセスしていましたが、Flashのpost先はhttp://www.hoge.jpになっていました。
2回目以降は、 http://www.hoge.jpを使い回しているので常時接続していました。
ローカル環境はネットのURLに飛ばしてたんで切れて当たり前でしたw
これで、セッション切れるもんなんですね。
0748nobodyさん
2011/10/18(火) 16:27:56.44ID:???後学の為に、クッキーモンスターについて知っておくと良いかも
たぶん、cookie http クッキーモンスターで検索すると詳細見つかるよ
0749nobodyさん
2011/10/18(火) 17:23:33.92ID:???0750nobodyさん
2011/10/20(木) 12:36:03.93ID:???0751nobodyさん
2011/10/20(木) 12:44:39.29ID:???むしろやっとという感
0752nobodyさん
2011/10/20(木) 13:16:38.39ID:???0753nobodyさん
2011/10/20(木) 18:45:09.14ID:???レンサバだってほどんど5対応してるし。
0754nobodyさん
2011/10/20(木) 19:53:02.70ID:???0755nobodyさん
2011/10/20(木) 20:24:44.11ID:???0756nobodyさん
2011/10/20(木) 22:47:59.02ID:???今やWordPressだって5.2以降だ
0757nobodyさん
2011/10/21(金) 00:12:41.15ID:???1テーブルへの保存は素直にモデル使う方のが楽だけど
0759nobodyさん
2011/10/21(金) 09:56:11.01ID:???直書きするしかないだろうか
0760nobodyさん
2011/10/21(金) 10:11:15.02ID:???みたいにするとき、SQL直書きしちゃうな。
0761nobodyさん
2011/10/21(金) 12:54:50.68ID:???0762nobodyさん
2011/10/21(金) 16:24:09.04ID:???簡単に実装できそうな気がするんだけどな
なんでできないんだろ
0763nobodyさん
2011/10/21(金) 17:40:19.31ID:???0764nobodyさん
2011/10/21(金) 18:24:38.42ID:???どうしたら良いんでしょうか?username, emailのみ残したいんですが。
0765nobodyさん
2011/10/21(金) 18:31:44.77ID:???$model['User']['email'] = $this->Auth->user('email');
これだとちょっと無駄な気がしまして。。
0766nobodyさん
2011/10/21(金) 18:39:25.50ID:???一度、自分で作ってみりゃ分かるよ。
まぁ、作る気もないのなら
http://gihyo.jp/dev/serial/01/cakephp/0015
^ここらへん見てみれ。
cookbookだかCakePHPの公式の文書あたりでもページネーションの難しさを論議してた所があった気がするが、文句言うくらいなら少しは自分で考えてみるべし。
0767nobodyさん
2011/10/21(金) 19:31:44.18ID:???ArraySource使えば一瞬だろうに
>>764
array_intersect_key($user, array_flip(array('hoge', 'fuga', ...)))
>>766
的外れだと思う。
というかずっとカスタムページネーションをモデルで実装することがなんで今までほとんど
話題に挙がってないか不思議すぎる。
0768nobodyさん
2011/10/21(金) 19:39:21.27ID:???的外れだと思う。
>というかずっとカスタムページネーションをモデルで実装することがなんで今までほとんど 話題に挙がってないか不思議すぎる。
何言っているのか分からない。
モデルを作ると半ば自動的にページネーションを使えるようになっているわけだが、「モデルで実装することがなんで今までほとんど話題に挙がってないか」の意味は、どういう意図なのでしょうか?
かなり昔にいじっていたsymfonyのページネーションだと、全体件数のsqlやら、ソートしなおす場合のsqlのテンプレートやら、カスタムsqlだとかなり色々いじる必要があったが、そこらへん理解できますか?
0769nobodyさん
2011/10/21(金) 21:13:36.76ID:???モデルとRDBを結び付けてたみたいだけど、モデルってRDB以外にもデータソース割り振れるんよ。RDBばっか使ってるから忘れてる事多いけど。
探せばRDB以外でもページネーションしてるの見つかると思うからそれ参考にすりゃ、作れると思うよ。
っつか、そもそもSQLでかたつくもんなら、そんな面倒な事考えないでRDB側でビュー作っちまうのが手っ取り早いな。
0770nobodyさん
2011/10/21(金) 22:00:39.54ID:???どうdataを形成したらうまく保存できるか分からないのですが、
教えていただけませんか?
0771nobodyさん
2011/10/21(金) 23:02:54.99ID:???なんでsymfonyが出てくるの
そもそも「カスタムページネーション」が示すのがわかってない?
paginate()とpaginateCount()をモデルで実装するということを指している。
あとデータソースレベルで解決できるならRDB以外でページネーションする場合もモデル
のコードは変わらんのだけど。。
>>770
$data['Tag']
or
$data['Tag']['Tag']
に入れれば、っていう話ではない?
0772nobodyさん
2011/10/22(土) 01:02:03.70ID:???0773nobodyさん
2011/10/22(土) 03:23:07.96ID:???0775nobodyさん
2011/10/22(土) 11:39:01.24ID:???おまいさんの目は節穴か?答え書いてあるじゃん。
0776nobodyさん
2011/10/22(土) 15:26:28.98ID:???俺は答えが書いてないなんて言ってないよ。。
何回も話がループしてる中でなんでその答えを指し示さないの?って思っただけだよ。
それをしないで謎の方向で議論が進んでるからおかしいなと。
というか、こういう行間の読み合いって不毛すぎるよね。やめよう。
0777nobodyさん
2011/10/22(土) 15:51:22.50ID:???マニュアルやらいろんな方向性を教えてもらって結構時間経ってるのにまだ解決方法を求めてるとか、
プログラムとか全くできない人だろ。
0778nobodyさん
2011/10/22(土) 15:52:50.71ID:???詰まったところを公式のマニュアル見て理解するって場面が数カ所あったし
0779nobodyさん
2011/10/23(日) 11:03:45.45ID:???頓挫しちゃったの??
すごい期待してるのに・・・
0780nobodyさん
2011/10/23(日) 16:55:28.79ID:???0781nobodyさん
2011/10/23(日) 17:27:15.31ID:???いろいろと中途半端なかんじ・・・
0782nobodyさん
2011/10/23(日) 21:41:36.49ID:???0784nobodyさん
2011/10/24(月) 12:22:12.00ID:???「掲示板に投稿しているユーザのプロフィールを表示」
ってな用途で利用しようと、上記の流れでアソシエーション(belongTo)
を組んでいるが、難しすぎるな・・。思うようにデータが取れない。
素直にjoinsオプション付けてfindした方がいい気がしてきた
0785nobodyさん
2011/10/24(月) 13:54:52.39ID:???0786nobodyさん
2011/10/24(月) 13:56:47.44ID:???俺の場合、afterFind入れてるからか、なぜかエラーになる。
エラーを解決する方法もわからないので、>>784の考えに至った。
0787nobodyさん
2011/10/25(火) 03:56:26.02ID:???0788nobodyさん
2011/10/25(火) 05:44:45.74ID:???/diary/detail/1/10
みたいになるんだが、非常に違和感を感じるのは俺だけか?
一応、/diary/1/detail/10 みたいにルーティングしているけど・・・
0789nobodyさん
2011/10/25(火) 18:24:42.41ID:???B belongsTo A 、C belongsTo A
B HABTM D、C HABTM E
以上の構成で、D、Eのカラムを検索条件にする時、どう検索したら良いでしょうか?
よろしくお願いします。
0791nobodyさん
2011/10/25(火) 20:33:25.78ID:???これをpaginateするにはどうすればいいのでしょうか?
もし参考サイトをご存じの場合は教えてください。
0792nobodyさん
2011/10/25(火) 20:55:18.02ID:???俺なら日記の記事ページのURLは、user_idを飛ばして/diaries/view/10にするか、
ユーザーネーム使って/(user_name)/diary/10か/diary/(user_name)/10にする
user_idをURLに含めるのはダサい
どうしてもユーザーID入れたいならnamedパラメータ使って/diary/view/user_id:1/diary_id:10とかだな
0794nobodyさん
2011/10/25(火) 21:16:55.95ID:???まあ1.2系のままだから1.3にはしておいてもいいだろうけど、ファイル名のパターンからディレクトリ構造まで大幅に変わってて簡単にアップグレードできんわな(´・ω・`)
0795nobodyさん
2011/10/25(火) 21:17:53.85ID:???ブログのアカウント的な感覚でuser_nameと言ったのか。
ま、それなら道理はわかるんだけどな。
user_idをURLに含めるのは確かにダサいんだが、
ユーザ専用ページを作成している場合は仕方ないんだよな。
mixiでもuser_idがURLに付加されているし。
0797nobodyさん
2011/10/25(火) 22:52:17.90ID:???システム的には大きく変わってないのに、ファイル構造は大きく変わったよね
規約にPSR-0を起用したせいだろうけど、なんだか慣れないせいか気持ち悪い
>>795
基本的にdiary_idがわかればuser_idも引っ張ってこれるんだからdiary_idさえあれば問題ないと思うけどね
urlにuser_idが含まれていても、そのIDが有効かどうかのチェックは必要だし
どちらにせよ何かしらの事情でuser_idがURLに含ませたいのなら>>792の最後の案だな
0799nobodyさん
2011/10/26(水) 14:55:11.47ID:???Post hasAndBelongsToMany Tag として、タグが設定されていない投稿を取得したいんです。
0800nobodyさん
2011/10/26(水) 15:20:32.44ID:???少々複雑だが
http://d.hatena.ne.jp/kanonji/searchdiary?word=%2A%5Bphp%5D
0801nobodyさん
2011/10/26(水) 20:02:12.45ID:???ってコントローラーで指定できませんよね?
0802nobodyさん
2011/10/27(木) 02:11:13.69ID:???何か理由があるのかね?
0803nobodyさん
2011/10/27(木) 03:45:34.56ID:???0804nobodyさん
2011/10/27(木) 10:46:16.71ID:???処理した内容を return で返してもデータが反映されず困ってます。
試しに return を null にしてもちゃんとデータを引っ張ってきてしまいます。
afterFind メソッドは叩かれてるようなんですが、戻り値を使っていないという感じです。
ちなみに直接 Find するとちゃんと戻り値が反映されます。
解決方法はありますでしょうか?
0805nobodyさん
2011/10/27(木) 11:10:43.00ID:???0806nobodyさん
2011/10/27(木) 11:28:25.45ID:???ソースというか、それ以前なんです・・・。
上の質問で試したソースです。
よろしくお願いします。
class Post extends AppModel {
var $hasMany = array(
'Postmeta' => array(
'className' => 'Postmeta',
'foreignKey' => 'post_id'
)
);
}
class Postmeta extends AppModel {
function afterFind($results, $primary) {
return null;
}
}
これで Post->find('all') すると return null してるから Postmeta は空、と思ってるんですが反映されません。
0807nobodyさん
2011/10/27(木) 11:48:38.50ID:???0808nobodyさん
2011/10/27(木) 12:04:17.04ID:???やっぱり hasMany はだめなんですか?
たしかに HABTM だとちゃんと意図した通りになるんです。
それで hasMany でも同じだと思ってたんですが・・・。
0809nobodyさん
2011/10/27(木) 13:30:57.05ID:???まちがってるね。
最初が大文字はPascal(パスカル) 形式
最初が小文字がCamel(キャメル) 形式
0810nobodyさん
2011/10/27(木) 14:05:35.88ID:???lowerCamelCase
0811nobodyさん
2011/10/27(木) 16:50:04.82ID:???0813nobodyさん
2011/10/27(木) 19:49:58.61ID:???ディレクトリ構造が複雑になって辛い・・・
0814nobodyさん
2011/10/27(木) 20:30:53.17ID:???controllerで設定したlimitを上書きしちゃうんだけど、URLからのパラメータ指定を
無効にするにはどうしたらいいの?
0816nobodyさん
2011/10/27(木) 20:58:48.27ID:???たしか2.0から無効になるパラメータがあったはず。
1.3以前なら無理だと思う。素直に自分で上限付けるべき。
0817nobodyさん
2011/10/27(木) 23:58:13.08ID:???ありがとう。2.0の変更内容を見ていてはじめて、URLパラメータでlimitが任意で指定できることを知った。
limitに1000000とか指定されても迷惑なので、paginateのwhitelistにきちんと値を設定することにするよ。
0818nobodyさん
2011/10/28(金) 03:53:00.84ID:0WPYyAnpCakePHP2.0使おうかと思ってるんだけどどうっすかね?
Web APIの数は数十本くらいになると思うんだけど
その程度でCakePHPはやめとけとか他のフレームワークの方がいいよとか
意見聞かせてください。
0819nobodyさん
2011/10/28(金) 03:59:15.54ID:???0821nobodyさん
2011/10/28(金) 06:51:50.59ID:???お前らコレ使ってる?
なんか複雑なクエリ発行したいときに便利そうだが
0822nobodyさん
2011/10/28(金) 09:40:50.71ID:???言葉が足りなかった。件数の設定をやめさせる、というわけではないよ。
コントローラでlimitをパラメータから取得して、paginateのオプションに
明示的に設定してから、paginateを実行する。
0823nobodyさん
2011/10/28(金) 11:33:30.55ID:k+uCwlGG0826nobodyさん
2011/10/28(金) 14:26:18.96ID:???0827nobodyさん
2011/10/28(金) 15:09:23.87ID:???時々Containableでは賄いきれなくてbindModelとか使うはめになるとチッって思う。
0828nobodyさん
2011/10/28(金) 16:10:21.67ID:???色々付けたり外したりしてると、わけわからんようになってくるしw
0829nobodyさん
2011/10/28(金) 16:33:42.39ID:???わかりやすく説明して賢い人!
0830nobodyさん
2011/10/28(金) 16:54:11.63ID:???0831nobodyさん
2011/10/28(金) 17:45:15.20ID:???bind,unbindするより500倍扱いやすい
http://book.cakephp.org/ja/view/1323/%E3%82%B3%E3%83%B3%E3%83%86%E3%82%A4%E3%83%8A%E3%83%96%E3%83%AB
>コンテイナブルを使わないならモデルの unbindModel() を使用することになります。複数のモデルを切り離すなら、
>unbindModel() を何度も実行しなければなりません。コンテイナブルによって同じことをより簡潔に行えます。
0832nobodyさん
2011/10/28(金) 18:19:37.84ID:???関連付けってアソシエイションのことだよね?
関連付けたモデルを取得しないってのは
recursiveでやるじゃなかったっけ?
0833nobodyさん
2011/10/28(金) 18:33:08.66ID:???groupオプション(GROUP BY)付けてページネートしてみて
ページが1ページしかないように返してくるから
これってバグだよね?
ググってみると、
http://d.hatena.ne.jp/aroundthedistance/20090728/1248784179
こんな記事もあるんだけど、
2009年の記事なのに未だに(1.3使用)直ってないってこと?
0834nobodyさん
2011/10/28(金) 19:31:34.10ID:???0835nobodyさん
2011/10/28(金) 22:04:00.46ID:???0836nobodyさん
2011/10/28(金) 22:14:35.50ID:???検索して、ヒットしたブログ記事を参考に実装してた。
0837nobodyさん
2011/10/28(金) 23:14:17.04ID:???recursiveでもできるよ。
だけど、containableを使うともっと細かく制御できる。
例えば、
usersテーブルに
hasOneでprofilesテーブルと
postsテーブルが
関連付けされててusersとprofilesだけ欲しい場合
$this->Users->find('all', array('contain' => 'Profile'));で取れる。
0838837
2011/10/28(金) 23:20:05.03ID:???$this->Users->find('all', array(
'contain' => array(
'Profile' => array('State')
)
));
で取れる。
0839nobodyさん
2011/10/29(土) 02:46:57.22ID:???誰かこれどう?1.3以上の人試してくれない?
コントローラの設定で、
var $paginate = array(
'Model' => array(
'group' => 'Model.id',
'order' => 'Model.id DESC',
'limit' => 5,
)
);
としてみるだけでいい
ページネーションのページ数が1になる
(ページ数(pageCount)が入っている配列はView内で $paginator->params() で取得可能)
0840nobodyさん
2011/10/29(土) 02:54:42.55ID:???・paginateメソッドがgroupに対応するとより複雑なグルーピングなどに対応できないなどの
拘束が生まれるので仕様
・バグじゃないから直らない
・記事の通りコールバック書け
0844nobodyさん
2011/10/30(日) 09:00:13.02ID:???40画像ぐらい表示させると、表示しない画像がちらほら出てくる・・・
実装としては、大きな画像をサーバ上に置いて、
・<img src="<?php echo $html->url('/thumbnails/view/1234'); " />
のようにimgタグでコントローラにリクエスト
・渡されたIDをもとに画像のパスが保存されてるテーブルをfind()
・その画像からサムネイルを生成して返す
という感じ。
1人がアクセスするたびに、40個画像があれば、
CakePHPが40個起動するのはやっぱりこの実装は問題ありなのかな?
同時接続数にひっかかってる気もする
ちなみに ZOZOTOWN(http://zozo.jp)はCakePHPではないと思うけど、
上記のような感じでアクセスされて生成している模様
0845nobodyさん
2011/10/30(日) 10:55:31.34ID:???実装に問題あり。
0846nobodyさん
2011/10/30(日) 12:54:12.82ID:???0847nobodyさん
2011/10/30(日) 18:03:57.54ID:???0848nobodyさん
2011/10/30(日) 23:20:56.06ID:???サムネイルキャッシュは公開ディレクトリに置くか、tmpディレクトリに生成して生PHPで読みに行かせるのがいいと思う
0849nobodyさん
2011/10/31(月) 00:54:49.04ID:???Mediaビューが便利。
0850844
2011/10/31(月) 06:30:50.20ID:???>>845
してると思います
ただ、生成したあとキャッシュしてるかもしれませんが、、、
http://imgc.zozo.jp/goodsimages/2207214/2207214_18_D.jpg?w=70&h=84
例えばこの画像だけど、
wやhの値を変えると、その大きさになります
http://imgc.zozo.jp/goodsimages/2207214/2207214_18_D.jpg?w=111
こんな感じで適当な値を全て保存してるはずないので
アクセスしたときに生成してるんだと思います
>>846
はい、最初はそう考えましたが、
様々な大きさにフレキシブルに対応したいと思って、
>>844のような実装にしたくなったのです
一度生成した画像はそのまま保存して、
その大きさの画像があれば、その保存したものを取りに行くという実装にしようかな?
ZOZOTOWNのような人気サイトはどう対応してるのか・・・
0851nobodyさん
2011/10/31(月) 07:09:00.82ID:???後は自分で考えなさいな。CakePHPはそこまでお世話できないよ。
0852nobodyさん
2011/10/31(月) 12:08:18.41ID:???そりゃ、サイズを入力したらそのサイズで表示(生成)されるよ。
でも、基本的にはショッピングサイトの画像サイズなんて決まってるから、
サイトで使用する画像だけ先に生成されるようにしてるんだろ。
だから、1アクセスで全ての画像を作成するんじゃないと思うよ。
0853nobodyさん
2011/10/31(月) 12:13:10.79ID:???0854nobodyさん
2011/10/31(月) 14:39:06.95ID:???User が複数の Item を持っているという仮定で、以下のようにすると Apple か Orange のいずれかをもつユーザーが抽出されます。
$options['joins'] = array(
array(
'table' => 'items',
'alias' => 'Item',
'type' => 'INNER',
'conditions' => array(
"Item.user_id = User.id"
)
)
);
$options['conditions'] = array(
'OR' => array(
'Item.name = "Apple"',
'Item.name = "Orange"',
)
);
$users = $this->User->find('all', $options);
これを Apple と Orange 両方持つユーザーを抽出したい場合どうしたらいいでしょうか?
MySQL のクエリは素人同然ですが、なにかヒントなどでもありましたらアドバイス下さい。
0855nobodyさん
2011/10/31(月) 18:48:00.13ID:???いつごろでるか予定は発表されてますか?
0856nobodyさん
2011/10/31(月) 19:36:30.56ID:???0857nobodyさん
2011/10/31(月) 19:39:16.86ID:???cakephpのライセンス情報はどこに載ってますか?
0858nobodyさん
2011/10/31(月) 20:17:55.13ID:???0859nobodyさん
2011/10/31(月) 20:54:23.92ID:???YMDとかDMYとか年月日全て指定すれば値が入るんですが。
今beforeValidateで無理矢理データを整形してるんですけど皆さんどうしてます?
0864nobodyさん
2011/11/01(火) 00:53:36.92ID:???0865nobodyさん
2011/11/01(火) 01:02:34.11ID:???0866nobodyさん
2011/11/01(火) 01:14:50.00ID:???0867nobodyさん
2011/11/01(火) 02:04:57.18ID:???0868nobodyさん
2011/11/01(火) 03:34:05.50ID:???0869nobodyさん
2011/11/01(火) 04:05:34.99ID:???0870nobodyさん
2011/11/01(火) 07:33:05.24ID:???金返せやゴルァ
0872nobodyさん
2011/11/01(火) 13:19:26.19ID:mfdF/wRx↑のブログの意見と同じくsmartyの
利便性がそれほど感じれず、そして、この利便性の割に
何故これほど普及したのかがよく分かりません。
優れているのはsmartyじゃなくてMVCという
考え方のほうだと思うんですけどどうなんでしょ
0874nobodyさん
2011/11/01(火) 13:42:39.88ID:???こういうサイトならこれだな。っていうのを見つけとけばいいだけの話じゃ。
0875nobodyさん
2011/11/01(火) 14:21:28.38ID:???php自体がテンプレートだから不要という意見もあるが、自由すぎて書く人によってコードの質が代わってくる
そこを埋めてくれるのがsmarty
一人しか開発に携わらないならフレームワーク+smartyなんて時間がかかるだけだよ
0876nobodyさん
2011/11/01(火) 15:34:31.28ID:???標準の http://hoge/users/view/user_id みたいにしたいんですが
エンジニア以外やcakeを使っていない人を説得できるうまい方法が
あったら教えてください…
0877nobodyさん
2011/11/01(火) 15:48:02.23ID:???0878nobodyさん
2011/11/01(火) 15:48:27.60ID:???前者のほうがみやすい
0879nobodyさん
2011/11/01(火) 15:51:12.54ID:???0880nobodyさん
2011/11/01(火) 16:49:15.06ID:???ユーザー名とサイトのパスが被らないように一段掘り下げて users から始めたい
社内アプリなんで user_name でURLを永続化させる意味がない
とか理由があるんでしょ?なぜ他人に聞く
0881nobodyさん
2011/11/01(火) 17:07:38.77ID:???0883nobodyさん
2011/11/01(火) 21:43:02.89ID:???cakephpのコンポーネントに書くのがふつうですか?
0884nobodyさん
2011/11/01(火) 23:30:24.20ID:???0885nobodyさん
2011/11/01(火) 23:45:13.83ID:???0886nobodyさん
2011/11/01(火) 23:47:41.47ID:???/var/www/html直下だよ。
0887nobodyさん
2011/11/02(水) 01:01:01.14ID:???0893nobodyさん
2011/11/02(水) 10:54:20.47ID:???どのようにして、リンク元のアドレスを知ることを出来るでしょうか?
0894nobodyさん
2011/11/02(水) 12:22:13.86ID:???こちらへどうぞ
http://hibari.2ch.net/test/read.cgi/hp/1317832246/
0895nobodyさん
2011/11/02(水) 13:54:57.66ID:???0896nobodyさん
2011/11/02(水) 15:12:23.06ID:???0897nobodyさん
2011/11/02(水) 15:55:00.74ID:???0898nobodyさん
2011/11/02(水) 16:31:28.48ID:???0899nobodyさん
2011/11/02(水) 17:25:41.36ID:???0900nobodyさん
2011/11/02(水) 18:59:40.99ID:???ググってもこれといった情報なくてtriggerで強制的に叩いてるんだけどみんなどうしてる?
0904nobodyさん
2011/11/02(水) 23:49:38.53ID:???0905nobodyさん
2011/11/03(木) 01:28:26.81ID:???0906nobodyさん
2011/11/03(木) 01:41:16.27ID:???0907nobodyさん
2011/11/03(木) 01:59:59.87ID:???0908nobodyさん
2011/11/03(木) 02:47:51.32ID:BQfojvD+Cookbookもまだ英語だし。ブログとかでも情報皆無だし。
これから開発で使いたいんだけどどうすればいい?
0910nobodyさん
2011/11/03(木) 03:28:44.79ID:???待ってたってどうにもならんから英語で読めばいいんじゃないすかね
英語ドキュメント恐怖症を直せば自分のためにもなるし読める情報も増えるし一石二鳥。
0912nobodyさん
2011/11/03(木) 10:39:33.71ID:???0913nobodyさん
2011/11/03(木) 11:18:26.53ID:???あとSessionも
0914nobodyさん
2011/11/03(木) 11:29:31.40ID:???だましだまし使ってるけど
0916nobodyさん
2011/11/03(木) 15:42:44.18ID:???0917nobodyさん
2011/11/03(木) 15:52:36.86ID:???なかみを呼ぼうとするとPHP Fatal error: Call to undefined method がでちゃうんですけど
0919nobodyさん
2011/11/03(木) 21:49:36.49ID:???おいてるんだけどAppController.phpの中にあるbeforeFilterとか読まれてない気がするんだ
hoge()みたいに適当に書くとコントローラからアクセスできているんだけどなんでだろ
0920nobodyさん
2011/11/03(木) 23:15:17.44ID:???他のアクションは読まれてるのにbeforeFilterだけがダメなら何かそこの書き方が間違ってるような気がするな
beforeRenderとかafterFilterは動いてるの?
0921nobodyさん
2011/11/03(木) 23:26:01.11ID:???あれってもう解決されてるんだろうか?
0922nobodyさん
2011/11/04(金) 00:49:12.20ID:???早いな
0923粕屋
2011/11/04(金) 04:05:53.65ID:NGbuW+zf0924nobodyさん
2011/11/04(金) 05:47:35.44ID:???0925nobodyさん
2011/11/04(金) 08:42:09.87ID:???0926nobodyさん
2011/11/04(金) 14:09:55.93ID:???リリースのアナウンスに書かれていることがほとんど全部だろ
そんなに大きくは変わってない
マルチリンガル対応はかなり良くなったらしいけど、滅多に使う機能じゃないからな・・・
0927nobodyさん
2011/11/04(金) 15:56:43.24ID:???0928nobodyさん
2011/11/04(金) 16:35:11.80ID:???2.0.1で変なバグ出てるし、まだstableな感じがしない
0930nobodyさん
2011/11/04(金) 17:16:59.90ID:???0933921
2011/11/04(金) 23:27:50.26ID:ME+KtoRuapp/tmp/cache/models/の下を削除すればおkだったはず。
権限とオーナーに注意だけど。
0934nobodyさん
2011/11/05(土) 00:54:16.12ID:???詳しく見てないが、物凄い高評価だから
お前らまたな!
これまで作ったサイトはCakePHPだからまたお世話になるかもしれんが!
0935nobodyさん
2011/11/05(土) 01:08:46.04ID:???Cake今までありがとうさようなら
0936nobodyさん
2011/11/05(土) 01:14:15.44ID:???0937nobodyさん
2011/11/05(土) 01:29:29.68ID:???0939nobodyさん
2011/11/05(土) 09:59:13.49ID:0mRDiQ7r1.3から移すのが糞面倒なだけだと思うぜ。
0940nobodyさん
2011/11/05(土) 10:09:29.29ID:???0941nobodyさん
2011/11/05(土) 11:36:13.18ID:???無知な私に教えてくださいまし
0942nobodyさん
2011/11/05(土) 11:59:48.02ID:???まずモデル。
モデルの construction process は made lighterで、モデルの associations are now lazy loaded, applications with lots of models and associations will see great time reductions in the bootstrap processだよ。
で、 models won’t require a database connection in the construction process. The database will be accessed for the first time only when a find operation is issued or information for one of the columns is required
というわけ。
ビューは
View will now always have the last rendered content (view or layout) accessible through $this->output. In helpers you can use $this->_View->outputなの。
Modifying this property will change the content that comes out of the view renderingってことさ。
あと20レスぐらい使うけどいいかい?
0943nobodyさん
2011/11/05(土) 12:01:46.95ID:???0946nobodyさん
2011/11/05(土) 14:56:48.67ID:???CakePHP2.0はphp5.3にしっかり対応してますか?
1.x系みたいにhtaccessでエラー設定を変更しなくても問題ないですか?
0948nobodyさん
2011/11/05(土) 16:01:59.81ID:???1.3をよくする為に2.0が誕生したんじゃないのですか
0949nobodyさん
2011/11/05(土) 16:16:01.53ID:0mRDiQ7rお前厨房か?
生まれたての赤ん坊がいきなり立って歩けるわけないだろ。
まだまだ成長して安定するのはこれからであって、実戦投入には向かないってこった。
0950nobodyさん
2011/11/05(土) 16:16:53.73ID:???しかし自分で立つにはまだ未熟
そんな感じ。
0952nobodyさん
2011/11/05(土) 16:31:24.19ID:???0953nobodyさん
2011/11/05(土) 16:34:03.68ID:???幼稚園や小学校の頃は神童とか天才児とか言われてたのに
中学校に入ってみたら周りが頭よくて全然ついて行けなくなったりするだろ。
そして高校に入ったらだいたいボッチで、大学に行ったら便所飯。
大人になるってのはそういうことなんだよ。
0954nobodyさん
2011/11/05(土) 17:01:58.11ID:???0955nobodyさん
2011/11/05(土) 17:17:42.50ID:???0956956
2011/11/05(土) 19:25:56.45ID:???0957nobodyさん
2011/11/05(土) 20:05:04.65ID:???そんな板で>>938みたいなレスをする奴に分からせるには
懇切丁寧な説明が必要だと思うぞ。相手するだけ無駄だと思う。
0959nobodyさん
2011/11/05(土) 21:58:03.49ID:???0960nobodyさん
2011/11/05(土) 22:17:32.67ID:???0961nobodyさん
2011/11/05(土) 22:38:53.97ID:???新しくもっといい彼女作るのが前向きな姿勢ってもんだろ?
でも新しい彼女とすぐにオマンコできるわけじゃないし、とりあえずは
前の彼女とオマンコしつつ、新しい彼女との関係をよくしていくわけだ。
正式に新しい彼女とつきあうことになったという時点で乗り換えてもいいけど、
まだオマンコできるかどうかわからないような状態であれば、前の彼女との関係は
切らずにおいた方が得策と言うことだよ。
0962962
2011/11/05(土) 22:47:11.09ID:???ちなみに某大手を受けたときにこの質問出た
0964nobodyさん
2011/11/05(土) 23:04:40.27ID:???某大手を受けた962はさぞかし素晴らしい説明ができるんだろう。期待
0965nobodyさん
2011/11/05(土) 23:21:19.76ID:???まて、これがバレて俺はちょっと大変なことになったからな
そういう場面に備えて他のフレームワークの使い方も覚えておいた方がいい。
0966nobodyさん
2011/11/05(土) 23:56:44.78ID:???を取得しようとすれば、$data['User']['Profile']['image']
みたいな連想配列になるんだが・・・
どうして、$data['Profile']['image']じゃないんだろ?
0967nobodyさん
2011/11/05(土) 23:57:03.52ID:???そもそもの前提が良くない。
彼女は一人だけという先入観にとらわれてないか?
状況と目的によって彼女は付き合い分けるべきだ。
0968nobodyさん
2011/11/06(日) 00:06:02.94ID:???あれで魔法使いが賢者に転職するようなもんだよ。
魔法使いと、魔法使い2.0とも言える賢者を比べたら、賢者の方が優れてるけど、
まだレベルが低いんだよ。
次の段階に踏み出すには、また1からやり直さなきゃいけないんだよ。
0969nobodyさん
2011/11/06(日) 00:06:58.18ID:???0970nobodyさん
2011/11/06(日) 00:13:50.53ID:???アソシエーション間違ってない?
JOINして取得できる分については$data['Profile']['image']みたいな配列で、
2つアソシエーション先のものとかJOINしないで個別にSQL発行して取得するものは
$data['User']['Profile']['image']になるはず
userとprofileなら普通にJOINして取れるはずだし
0971nobodyさん
2011/11/06(日) 02:51:07.45ID:???2つ先の物を取ろうとしたんだよ。
過去レスで似たようなのがあった(>>784)けどさ。
Cakeの仕様上、仕方ないとは言え、
モデルのモデル・・・みたいな多次元配列は少々違和感あってね。
0972nobodyさん
2011/11/06(日) 03:20:32.95ID:Zi3yb96E命名規則や記法まで変わってるわけだし。
アップグレード目的と言うよりはおそらくほぼ0ベース開発なのかと。
まあなんだかんだ言って2.0がもう少し安定したら俺も乗り換えるな。
面倒で複雑だが、慣れてしまえばなかなか便利なFWだし、他に乗り換え手段も殆ど無い。
0973nobodyさん
2011/11/06(日) 16:08:48.13ID:???0974nobodyさん
2011/11/06(日) 16:59:52.16ID:???0975nobodyさん
2011/11/06(日) 17:05:12.91ID:???0976nobodyさん
2011/11/06(日) 23:52:51.26ID:???もの凄く細かい部分でも意味が通じない時になって仕方ない
0977nobodyさん
2011/11/07(月) 02:52:30.65ID:???コピペ駆使してもこれだもんなあ
車輪の再発明みたいなことしたくないわ
0978nobodyさん
2011/11/07(月) 03:32:06.45ID:???↓
まあこの部分はcakeから丸ごと貰ってこよう。後でちょっとオレ流に直せばいいや。
↓
はっ!最初からcake食ってれば
0981nobodyさん
2011/11/07(月) 13:15:22.12ID:???今までJavaしか使ってなかったからPHPの資産なんてない俺みたいなのも
そんなにレアケースではないと思うが
0982nobodyさん
2011/11/07(月) 15:31:13.32ID:???0985nobodyさん
2011/11/07(月) 16:12:37.82ID:???そんな事はないと思うが。
ググって適当にプログラム系のブログでも見てみたら?
FW使っている絶対数の方が少ないから。
>>984
偶然だな。君と同じ意見だ。
0986nobodyさん
2011/11/07(月) 16:40:38.44ID:???→ifとかforeachとかPHPの基礎から勉強
・基礎を学んでいるプログラマ
→自分で関数やクラスを作ってるからオレオレを作る
・オレオレだとコードに統一感がないからフレームワークを使う
→過去の経験を踏まえてCake用のヘルパーやコンポーネントを作る
こんな感じじゃねーの。よほどの初心者〜そこそこの経験者で
オレオレが作れないレベルの奴っていないと思うが。
0987nobodyさん
2011/11/07(月) 17:09:07.60ID:???ModelにhasManyとbelongsToの関係を書いてます。
いまの書き方だとJOINが Post`.`user_id` = `User`.`id`になってしまいます。
これを`Post`.`user_id` = `User`.`user_id`にしたいと思っています。
勝手にidとJOINされてしまうはなんとかならないのでしょうか。
User.phpに
public $hasMany = array(
'Post' => array(
'className' => 'Post',
'foreignKey' => 'post_id',
)
)
Post.phpに
public $belongsTo = array(
'User' => array(
'className' => 'User',
'foreignKey' => 'user_id',
)
)
0990nobodyさん
2011/11/07(月) 21:48:34.72ID:???primaryKeyをuser_idにしてみたらできるようになりました。
ありがとうございます
0992nobodyさん
2011/11/07(月) 23:14:45.14ID:sCxF7RNS教えてください。1.3系のように以下の方法では取れませんでした。
$view = ClassRegistry::getObject('view');
0993nobodyさん
2011/11/08(火) 01:13:46.19ID:???0994nobodyさん
2011/11/08(火) 16:28:19.33ID:???と言う条件って、INを使うのでしょうか?
そうだとして、INをCakeで使う場合、
$this->find('all', Array('conditions' => Array('id' => $conditions)));
みたいに、$conditions部分の配列を生成(一旦findで取得?)
する方法しかないのでしょうか?
0995nobodyさん
2011/11/08(火) 17:54:29.36ID:???$this->_Viewに入ってるよ。移行ガイドぐらい見ましょう
>>994
$conditions = array(
'user_id !=' => $jibun_no_id // $this->Auth->user('id')
);
「自分が登録してる」の設計がわからんが多分こういうこと?
0996nobodyさん
2011/11/08(火) 18:46:24.68ID:???$options = array('conditions' => array('>Bookmark.user_id' => $user_id));
$this->Bookmark->find('all', $options);
みたいなので、「自分が登録しているブックマーク」を取得できます。
ブックマークの内容は何でも良いんですが、
例えばポータルサイトのお店を登録しているとします。
その前提で、「自分が登録しているお店以外の一覧を表示したい」
という条件を実現させる場合はどうするのかな?と思いまして。
INというか、NOT INですかね。
0997nobodyさん
2011/11/08(火) 19:00:22.65ID:???$conditions = array(
'NOT' => array(
'hoge_id' => $fugaList
)
)
0998nobodyさん
2011/11/08(火) 23:16:02.52ID:???0999nobodyさん
2011/11/09(水) 00:49:10.38ID:???メールでリンククリック認証で、
忘れたときは再発行できる機能がついてたりするのがあればいいんですが。
1000nobodyさん
2011/11/09(水) 00:49:34.85ID:???10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。