【PHP】フレームワーク CakePHP 2ホール目
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2007/11/14(水) 02:50:28ID:???http://www.cakephp.org/
10分で作るCakePHPアプリ for Windows
http://p4life.jp/cake/
マニュアル日本語化
http://www.cakephp.jp/doc/
日本語フォーラム
http://cakephp.jp/modules/newbb/
あとこのへんとか(初心者向けTIPS)
http://www.avatarfinancial.com/pages/cake/
0002nobodyさん
2007/11/14(水) 03:12:01ID:???0003nobodyさん
2007/11/14(水) 03:25:56ID:???0004nobodyさん
2007/11/14(水) 03:26:45ID:???【PHP】フレームワーク CakePHP
http://pc11.2ch.net/test/read.cgi/php/1163850802/
0005nobodyさん
2007/11/14(水) 11:46:19ID:???>>あとこのへんとか(初心者向けTIPS)
>>http://www.avatarfinancial.com/pages/cake/
ヒント:初心者は英語読めないw
0006nobodyさん
2007/11/14(水) 12:26:42ID:???0007nobodyさん
2007/11/14(水) 16:44:29ID:???ttp://pub.studio15.jp/2007/11/13/cakephp-links/
0008nobodyさん
2007/11/14(水) 21:45:34ID:Y+NYefM3なぜ $this->set('hoge','hoge'); といちいちコントローラーからviewへ送るものを
指定する必要があるのか不思議に思うのですがいかがでしょうか。
$this->set(get_defined_vars()); を app_conrtoroller に直接書いておくというのが
一番手間かからず楽だと思うのですが、何かデメリットありますかね
ご指導、ご鞭撻のほど、よろしくお願いします。
0009名無しさん@Vim%Chalice
2007/11/14(水) 22:22:26ID:???$this->set()を拡張するって事?
そういう風に纏めても結局、コントローラとアクションの
組み合わせごとにビュー側へ渡す変数ってバラバラだよね。
変数を渡したくない時もあるし、条件ごとにセットしたりしなかったり。
そーゆー所ってのは往々にして関数で一括りにしようとすると大変な思いをする。
んで後からキモい拡張を繰り返す羽目になる。
つーかね、$this->set();をいっぱい書くのが嫌だっつーんなら
こういう書き方があるぞ
$this->set( array(
'foo' => $foo,
'bar' => $bar,
));
0010nobodyさん
2007/11/15(木) 16:51:14ID:k/tuboV7ありがとうございます。
$this->set( array(
'foo' => $foo,
'bar' => $bar,
));
といった書き方でやることにします。ありがとう!
0012nobodyさん
2007/11/16(金) 06:01:31ID:???デメリットと、
おまけでそれへの対処の一例を書いてるだけのように見えるが...
ゆとりか?
0013名無しさん@Vim%Chalice
2007/11/16(金) 08:08:28ID:???そういう風に見える?
たしかに口は悪いけど、こういう事ってひとりじゃなかなか
気付かねーと思うんだけどな
習い事でも何でもそうだけど、最初は人の真似から始まるじゃん
プログラミングだけ個人のアイディアが〜とか言ってたら
切磋琢磨できないよ
//まあ、苦労するのもいい勉強だけどな
0014nobodyさん
2007/11/16(金) 11:05:41ID:???たとえば、商品入力ダイアログボックス
検索も出来て、クリックして選択。
そういうページだけど、これは汎用。
あるページの商品入力にこのダイアログを使う。
また、違うページの商品入力にもこのダイアログを使う。
ダイアログ的な用途だけど、ウインドウポップアップで
出てくるのではない普通のページ。
0015nobodyさん
2007/11/16(金) 11:56:29ID:???0016nobodyさん
2007/11/16(金) 13:26:25ID:???> たしかに口は悪いけど、こういう事ってひとりじゃなかなか
> 気付かねーと思うんだけどな
>
> 習い事でも何でもそうだけど、最初は人の真似から始まるじゃん
> プログラミングだけ個人のアイディアが〜とか言ってたら
> 切磋琢磨できないよ
ヘタレのくせに自意識過剰じゃね?
0018nobodyさん
2007/11/16(金) 17:32:00ID:???$data[0]['Model']['column']
の形式の配列が帰ってくるんですが、これを
$data[0]['column']
の形式で取得したいんです。何か楽な方法って用意されていませんかね?
0020nobodyさん
2007/11/16(金) 17:52:26ID:???app_model.php内に以下のようなコードでも入れてあげれば?
function hoge($data)
{
foreach($data as $i => $data2){
foreach($data2[$this->name] as $column => $Value){
$newData[$i][$column] = $Value;
}
}
return $newData;
}
で、各々のモデルでfindAllした後に$data[0]['Model']['column']形式のデータを引数にしてhogeする
0022nobodyさん
2007/11/17(土) 02:24:41ID:???都会の人はうらやましいな。本当に。
0023nobodyさん
2007/11/17(土) 02:59:12ID:???0024nobodyさん
2007/11/18(日) 00:59:28ID:???0025nobodyさん
2007/11/18(日) 19:13:19ID:???0026nobodyさん
2007/11/20(火) 01:45:08ID:???0027nobodyさん
2007/11/20(火) 08:22:30ID:???オマイラ天才だな
0030nobodyさん
2007/11/20(火) 13:01:09ID:???誤字脱字以前に最初からbakeの使い方を説明しているのはどうなんだろ。
Railsから来た人ならわかるのかも知れないけど、Cakeから始めたら
絶対に混乱すると思うんだが。
modelとか複雑な例を出してるし、コードが長すぎて理解できないっしょ。
0031nobodyさん
2007/11/20(火) 14:37:23ID:???それと実践編のサンプルの仕様が良くわからない(実践的なものと思えない)
0032nobodyさん
2007/11/20(火) 15:35:43ID:WpMCnsjrpublic_html
└app/
└cake/
└vendors/
└hoge/(任意のディレクトリ)
と配置した場合に、hoge/ はcakePHPの影響を受けたくない場合はどうしたらいいんでしょうか。
具体的にはxreaのlogディレクトリで、中にはphpmyadminが入ってます。
http://sample.sxxx.xrea.com/log/phpmyadmin/でアクセスすると、
cakeのエラー:you are seeing this error because controller LogController could not be found.
.htaccessの問題かとは思うんですが、そもそもディレクトリ配置の仕方に問題アリですか?
0033nobodyさん
2007/11/20(火) 15:49:32ID:???参考:
ttp://purazumakoi.info/blog/archives/2007/09/cakephp.html
0035nobodyさん
2007/11/20(火) 20:13:05ID:???つまり、$model->findTree('id = a1') とかやったら、
- a1
+- b1
+- c1
+- c2
+- b2
こんな感じでツリーのデータとして返してくれる感じ。
参考までにほかのO/Rマッパーの話でもいいけど。
とここでふと思ったけど、自分のモデルに対してアソシエーション設定すればうまく行くのか?
0036nobodyさん
2007/11/21(水) 02:55:26ID:???cakeもrailsみたいにコマンド一つでファイル作ってくれればいいのに
質問に答えていくのがなんか面倒
0037nobodyさん
2007/11/21(水) 08:30:39ID:Cl2dTAkZ0038nobodyさん
2007/11/21(水) 12:29:06ID:???0040nobodyさん
2007/11/22(木) 01:19:04ID:???0041nobodyさん
2007/11/22(木) 08:23:16ID:nlNH1bOEコンポーネントにすべきか、という意味?
0042nobodyさん
2007/11/22(木) 10:30:25ID:???0043nobodyさん
2007/11/22(木) 12:06:19ID:AuFQqZEI0044nobodyさん
2007/11/22(木) 18:33:00ID:???一回自分でサイト構築までやってみて、これ試すと相当やばい
PHP野郎にとっては麻薬以上にやばい
0045nobodyさん
2007/11/22(木) 19:19:37ID:???0046nobodyさん
2007/11/23(金) 01:56:02ID:???0047nobodyさん
2007/11/23(金) 02:09:41ID:???0048nobodyさん
2007/11/23(金) 12:37:53ID:???0049nobodyさん
2007/11/23(金) 13:00:29ID:???Cakeのヘルパーからこれらの世界に入っていくのは不味いですかね?
ある程度本でも何でも読んでから出直したほうが良いのかな
0050nobodyさん
2007/11/23(金) 17:34:58ID:???そういう人用のヘルパーだと思われるよ。
普通に書きたきゃ書けばいいし、ライブラリ使いたきゃ使えばいい。
まずいも何もないと思う。
0051nobodyさん
2007/11/23(金) 18:26:39ID:???あまりviewにロジック組みたくないんだが。
0052nobodyさん
2007/11/23(金) 18:38:55ID:???ログインしてなかったら一括でログイン促すページにリダイレクトだろ
おまえwebアプリ作ったことあるのか?
0053nobodyさん
2007/11/23(金) 21:16:55ID:???そうですか、助かりました。
でも少しはAjax, Javascriptの本もかじってみようと思います。
ありがとうございました。
0054nobodyさん
2007/11/23(金) 21:17:41ID:???してたら「ログアウト」を表示したいってことじゃないの?
0055nobodyさん
2007/11/24(土) 04:15:26ID:???ログインしてない時はグローバルナビのリンク先urlでも変えて、ログインフォームと新規登録リンクと個別説明ページに飛ばすか
できれば同じurlにしたかったが。
0056nobodyさん
2007/11/24(土) 04:17:02ID:???0057nobodyさん
2007/11/24(土) 07:36:32ID:???テンプレートだけ作ってコントローラから何々の部分のメッセージを設定して
renderればいいんじゃないのん
0059nobodyさん
2007/11/24(土) 14:44:27ID:+GWOZRBH○ログインしている場合
view/layout/default.thtml に
if($_SESSION['Login']['email'] != ''){ $this->render('loginok.thtml');}
(ログイン中のエレメントを表示させる)
○ログインしていない場合
view/layout/default.thtml
if($_SESSION['Login']['email'] == ''){ $this->render('loginng.thtml');}
(ログインしてね♪ボックスを表示させる)
という処理でわけてますね。
わかりやすいし、いいと思いますよ。
0060nobodyさん
2007/11/24(土) 16:57:12ID:???エレメントにしておいて、コントローラで切り替えるってのはいいかも。
0061nobodyさん
2007/11/25(日) 03:26:25ID:???<?php echo $html->tagErrorMsg('Post/body', '本文は必ず入力してください。')みたいだったやつ。
Modelでメッセージ内容決められるようになったから。
あとエラーって一個ずつしか出ないけどまとめて表示とか出来ないの?
<?php echo $html->tagErrorMsg('Post/body', '本文は必ず入力してください。') ?>
0062nobodyさん
2007/11/25(日) 08:44:45ID:???$form->input()を使えばエラーも一緒に表示されるようになる。
エラー文はmodelでも指定できるし、今まで通りControllerでも
指定できるけど、tagErrorMsgは無くなったので、inputの第二引数に
messageとして渡してあげればOK。
一個のinputに対してエラーを全部表示するのはコアを触らないと
無理じゃないかな。よく知らん。
0063nobodyさん
2007/11/25(日) 20:28:15ID:???一個ずつしか出ないならJavascriptの使用を強制してエラー出してあげるしかないかな
0064nobodyさん
2007/11/25(日) 22:38:25ID:???0065nobodyさん
2007/11/26(月) 00:36:21ID:???0066nobodyさん
2007/11/26(月) 21:19:27ID:???0067nobodyさん
2007/11/26(月) 21:32:38ID:g6VI9o/i0068nobodyさん
2007/11/26(月) 22:20:15ID:???0069nobodyさん
2007/11/26(月) 22:37:57ID:9laXyXH+0070nobodyさん
2007/11/27(火) 00:22:24ID:???0071nobodyさん
2007/11/27(火) 04:42:44ID:???細かい部分で変な仕様っていうか不具合っていうか
いまいちな動作するよねえ
validationとかsaveとか
おかげでソースとにらめっこで時間かかる…
0072nobodyさん
2007/11/27(火) 07:25:54ID:q198YkJr0073nobodyさん
2007/11/27(火) 09:33:56ID:???saveはidも更新されちゃうとかか?
0074nobodyさん
2007/11/27(火) 11:12:10ID:O5dAXXRhテーブル名が「prefix_テーブル名」の時は「prefix_テーブル名_id」となるんでしょうか?
また、テーブル名は複数形ですか?
0075nobodyさん
2007/11/27(火) 21:07:05ID:???0076nobodyさん
2007/11/27(火) 21:16:36ID:???そこまでまだ使いこんでない
>>73
2は少しよさそうだね
なんかわかりにくいというか 仕様が曖昧だよね
まあ楽につくろうっていうのが趣旨だからしかたないのかもしれない
もうちょっといじってみる
0077nobodyさん
2007/11/27(火) 22:46:38ID:???日本人じゃないから仕方が無いけど、
単数と複数の意味を考えよう。
テーブルとは、レコードの集まりだ。
で、一つのレコードは、一つのもの。つまり単数だ。
だからレコードのID・・・つまり一つのもののIDなのだから
単数形_IDになる。
そしてその集まりであるテーブルは当然複数形となる。
ついでにいうと、テーブルのレコードに相当するModelは当然単数形だし、
そのモデル(単数)の一覧(複数)を表示したりするコントローラは複数形となる。
単数形と複数形の使い分けはこんな感じ、
あと残りの単語の区切りがアンダーバー区切りか頭大文字かはクラス名は頭大文字
ファイルやテーブルはアンダーバー区切りとなる。
0078nobodyさん
2007/11/28(水) 00:30:00ID:???テーブル B hasAndBelongsToMany A
のときの A のデータの編集(新規追加)画面を作ってる
Aの編集画面で、Bのデータを持ってきて表示・選択できるところまでできた
で、Aのデータをsaveするときに、Bのデータのsaveとかvalidatesは自動でやってくれるの?
この辺り、いまいちややこしいなああ
0079nobodyさん
2007/11/28(水) 01:03:43ID:???続きだけど
この場合、自前でvalidatesするときはどこでするの?
AとBを関連づけるための A_Bテーブルも作ってるけど A_Bモデルでやるのかな?
それともAモデル?
Bモデルだとデータの形式が違うから AモデルかA_Bモデルだとは思うんだが…
0080nobodyさん
2007/11/28(水) 03:05:53ID:k8OzrBLtコントローラ内で
pr($this->User->invalidFields());
とかってやるとちゃんとvalidateは行われているようなんですが・・・
0081nobodyさん
2007/11/28(水) 14:51:33ID:Zvh5a2INどうなんすか。先輩方。
0082nobodyさん
2007/11/28(水) 15:01:13ID:???ただの一枚のphpファイルだけで完結するものと
データベースにアクセスするものを比べたら
そりゃ重いのは当然だと思うが?
0083nobodyさん
2007/11/28(水) 15:18:31ID:???0084nobodyさん
2007/11/28(水) 20:51:41ID:???0085nobodyさん
2007/11/28(水) 21:56:36ID:???0086nobodyさん
2007/11/29(木) 17:42:41ID:IwtVKe0+フレームワークcakephpを使ったプログラムと
普通にベタ書きでプログラムを書くのと比べて。
0087nobodyさん
2007/11/29(木) 18:11:52ID:???0088nobodyさん
2007/11/29(木) 21:15:28ID:???0089nobodyさん
2007/11/30(金) 18:57:34ID:uOWFJHM3fatal で 30秒どうのこうの・・・というエラーが出るんですよ。
更新キーを押してもなかなか表示しなかったり。
キャッシュ使わないときついんですかね。cakephp。
プログラムのみならある程度いけるんですが、画像使うともう厳しいくらい重いですね。
なんか良い方法ないでしょうか。
0090nobodyさん
2007/11/30(金) 20:08:26ID:???0091nobodyさん
2007/11/30(金) 21:45:10ID:uOWFJHM3ありがとうございます。
今でました。
Fatal error: Maximum execution time of 30 seconds exceeded in /home/hoge/www/hoge/cake/libs/session.php on line 154
セッション周りがおかしいんですかね〜。
ちなみにcakephp1.1 サクラサーバーのプロっていうレンタルサーバーですね。
レンタルサーバーでも他のプログラムならさくさく動くんですが・・・。
0092nobodyさん
2007/11/30(金) 21:53:08ID:???0093nobodyさん
2007/12/03(月) 19:35:14ID:???0094nobodyさん
2007/12/04(火) 19:21:59ID:???0095nobodyさん
2007/12/04(火) 19:35:56ID:5jWwGUYJ0096nobodyさん
2007/12/04(火) 19:52:21ID:???話が変わってしまって申し訳ないけど、
1.2のcake/libs/session.phpの470行目
$config = CONFIGS . Configure::read('Session.cookie') . '.php';
ってなってるけど
$config = CONFIGS . Configure::read('Session.save') . '.php';
の間違いじゃね?
1.1だと
$config = CONFIGS . CAKE_SESSION_SAVE . '.php';
ってなってるし。
ticket出したいけど英語ができない・・・orz
0097nobodyさん
2007/12/04(火) 20:01:17ID:???$config = CONFIGS . Configure::read('Session.cookie') . '.php';
ってなってるけど
$config = CONFIGS . Configure::read('Session.save') . '.php';
の間違いじゃね?
をそんまま訳せばいいだろw
0098nobodyさん
2007/12/04(火) 21:09:42ID:???全然話違うけど、フォームの確認画面はググってすぐ見つかる方法くらいしかないんだろうか。そもそもcake使っているものに確認画面が見当たらない
0099nobodyさん
2007/12/04(火) 22:56:12ID:???運がよければいいことがあるぜ!
http://localhost/users/deletel/1
0100nobodyさん
2007/12/05(水) 01:13:52ID:???0101nobodyさん
2007/12/05(水) 13:38:48ID:???心優しい奴だな
■ このスレッドは過去ログ倉庫に格納されています