【PHP】フレームワーク CakePHP 4ホール目【v1.2】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2008/06/20(金) 01:24:40ID:???10分で作るCakePHPアプリ for Windows
http://p4life.jp/cake/
マニュアル日本語化
http://www.cakephp.jp/doc/
Cookbook :: 1.2 Collection :: マニュアル
http://book.cakephp.org/ja
日本語フォーラム
http://cakephp.jp/modules/newbb/
あとこのへんとか(初心者向けTIPS)
http://www.avatarfinancial.com/pages/cake/
CakePHP入門リンク集
ttp://pub.studio15.jp/2007/11/13/cakephp-links/
【PHP】フレームワーク CakePHP 3ホール目【本命】
http://pc11.2ch.net/test/read.cgi/php/1205475360/
【PHP】フレームワーク CakePHP 2ホール目
http://pc11.2ch.net/test/read.cgi/php/1194976228/
【PHP】フレームワーク CakePHP
http://pc11.2ch.net/test/read.cgi/php/1163850802/
0773nobodyさん
2008/12/01(月) 15:03:11ID:uBVWzlfV別途DBのライブラリ使って直接DBから検索するのが一般的なんですかね
0775nobodyさん
2008/12/01(月) 17:08:02ID:???質問の意味が理解できていないかもしれないけど、
Object にある requestAction メソッドはどう?
0776nobodyさん
2008/12/01(月) 18:58:54ID:???通常はwebroot直下にオリジナルのphpファイルは置かない。
一般的には、DB読むようなファイルなら、pages以下に持ってくる。
(必要ならURL書き換えれば良いし)
0778nobodyさん
2008/12/01(月) 23:13:14ID:???0779nobodyさん
2008/12/02(火) 10:27:07ID:???メール送信ビヘイビアってあるでしょ。
結局コントローラーで qbmailとか使わないといけないからさほど
メリットがないような気が。
英語だけならビヘイビアでいけるだろうが、日本語だからな。
文字化けが。。。
インクリメント・デクリメント以外の便利な使い道を師匠。教えて下さい。
0780nobodyさん
2008/12/02(火) 14:29:46ID:???結構下火だよね
関連開発しょぼいし
本家すら
0781nobodyさん
2008/12/02(火) 14:34:47ID:???cakephpはコード生成が弱すぎ
masterbakeやpowerbakeがあるけど本家開発に組み込まれてるわけじゃなく
バージョンアップ追いついて無いし
標準のbakeだとテーブル一つ毎にモデル作れとかフィールド一つ毎にバリデーション指定しろとかやってられん
機能少ない割にsymfonyより遅いし
0782nobodyさん
2008/12/02(火) 14:57:00ID:???0784nobodyさん
2008/12/02(火) 20:15:49ID:???コントローラに用意するとき、view は、add と edit と2つのファイルを用意すると
思います。
ただ、add の時も edit の時も入力項目は同じで、ページ遷移後の状態が、
空白か、呼び出したデータが表示されているか?程度の差しかないような画面の時でも、
add, edit の view は用意しておくものでしょうか?
それとも、add と edit の両方をまかなえる view を作って、コードで処理させるほうが
いいのでしょうか?
0785nobodyさん
2008/12/02(火) 20:40:05ID:???「僕すごい事知ってるよ」
じゃなくて具体的な例を出せ
>>783
言いに来てるのは既に仕事で使ってて使わざるを得ないからなのと
こういう事が書かれてれば最初から使わなかったってことだな
0786nobodyさん
2008/12/02(火) 21:19:32ID:???確かに参考にはなるけど。
0787nobodyさん
2008/12/02(火) 21:55:16ID:???たぶん1.2からだけど、bakeして吐き出されたviewは、editとaddを共通化している
それを知ってから、すべてのadd.ctpを削除した
admin_edit とかもすべて共通化したら、viewの数が激減してすっきりしたよ
0788nobodyさん
2008/12/02(火) 23:36:54ID:???0789784
2008/12/02(火) 23:43:37ID:???情報ありがとうございます。1.2 を使っているので早速 bake してみましたが、
add, edit は別にはきだされました…。
1.2.0.7692 なので、最新だと思うのですが…。
0790nobodyさん
2008/12/02(火) 23:58:07ID:???どっちか消してどっちかだけ使えば?って話じゃないの?
0791nobodyさん
2008/12/03(水) 01:04:53ID:WkUpG3Q2んんー、ほんのりオシッコの味がするよ!!
0792nobodyさん
2008/12/03(水) 01:06:12ID:???0793nobodyさん
2008/12/03(水) 01:43:34ID:o3/nvN5Xhttp://f.hatena.ne.jp/images/fotolife/b/begorian/20070111/20070111005904.jpg
0794nobodyさん
2008/12/03(水) 01:45:36ID:???0795nobodyさん
2008/12/03(水) 09:35:31ID:???あれ?そうなの?
と、思ったら、記憶違いでscaffold使ったときのことだったかも
/cake/libs/view/scaffolds にはadd.ctp無かったから(rc3で確認)
でも、どっちか消したほうがオススメなのは確か
$form-> create , input は共通で使えるだろうから
0796nobodyさん
2008/12/03(水) 13:24:13ID:???0797nobodyさん
2008/12/03(水) 13:45:22ID:???0798nobodyさん
2008/12/03(水) 13:48:04ID:???0799nobodyさん
2008/12/03(水) 14:48:04ID:???このエラーはどういう意味だろう?
bake allで作成したMVCなのにテーブルが見つからないとは。
publishesなんてテーブル作ってないんだけどね。
cakephp使う際にはそういう名前のテーブルを用意しなきゃいけないとか?
0800nobodyさん
2008/12/03(水) 14:49:48ID:???インデックスなんてプログラムにとって知った事じゃないだろ
0802nobodyさん
2008/12/03(水) 14:55:18ID:???URL:http://localhost/Areas
MVCはbake allで作ってるからテーブル名から正しく生成されてるはず
0803nobodyさん
2008/12/03(水) 17:40:54ID:???Publish モデルがあったり、areas_controller.php で $uses = array('Publish') してない?
0804nobodyさん
2008/12/03(水) 22:50:50ID:???0805802
2008/12/04(木) 03:52:30ID:???特定の場合に、cake allで生成すると
cakephpが内部で使ってるpublishと言うダミーモデルのデータが残ってしまうらしい。
いくつかモデルを生成した中で、一つだけpublishがはいってしまったものがあった。(Userモデル)
cakephpはデフォルトで全モデルを読み込んでるらしく、どのコントローラにアクセスしようと
publishesテーブルが無いと怒られた。
0807nobodyさん
2008/12/04(木) 10:09:08ID:???でもcakeのダミーモデルなのは確か
0808nobodyさん
2008/12/04(木) 10:42:12ID:???2-3個しか入力項目のないフォームがあって、それらの項目に、
hoge, piyo, fuga とか入っているとする。
これを submit したとき、こんなURLに遷移させたい。
http://(base-url)/hoge/piyo/fuga
JavaScriptを使えば簡単だけど、できたらクライアントサイドスクリプトには
依存したくない。
CakePHPに、これを実現するのに便利な仕組みはないんだろうか?
普通に$this->dataからを取得して、implode('/', ...)でつないで redirectす
るしかないのかしら?
0809nobodyさん
2008/12/04(木) 10:46:31ID:???0811nobodyさん
2008/12/04(木) 11:10:30ID:???まあそうなんだけど、もし元々あるんなら利用したいと思って。
>>810
え? mod_rewrite って、
base-url/hoge/piyo -> base-url/index.php?param0=hoge¶m1=piyo
という変換だけじゃなくて、
base-url/index.php?param0=hoge¶m1=piyo -> base-url/hoge/piyo
こっちもできるの?
0812nobodyさん
2008/12/04(木) 13:22:38ID:???0813nobodyさん
2008/12/04(木) 14:33:53ID:???Apache module mod_rewrite
http://www.net-newbie.com/trans/mod_rewrite.html
> 膨大な設定例やドキュメントがあるにもかかわらず、 mod_rewrite は黒魔
> 術である。かなりイケてるっぽい黒魔術だが、 やっぱり所詮は黒魔術である。
> -- Brian Moore
つうかCake関係ないな。すんません。
0814nobodyさん
2008/12/04(木) 14:45:09ID:???0815nobodyさん
2008/12/04(木) 18:08:36ID:???変数・グローバル変数をアソシエーションの定義に使えないよね?
この問題はどう解決すればいい?
0816nobodyさん
2008/12/04(木) 19:08:19ID:???両方のテーブルのフィールドを条件にして片方のテーブルのレコードを抽出したい場合、どうすれば良いですか?
つまりjoinテーブルでつながれた相手側のテーブルのフィールドで自分のレコードを絞り込むと言う事です。
0817816
2008/12/04(木) 19:11:19ID:???SQLを書くしかありませんか?
0819nobodyさん
2008/12/04(木) 22:21:39ID:???routeの設定でいけるんじゃね?
http://cakephp.jp/doc/ch04s03.html#id4799268
0820nobodyさん
2008/12/04(木) 23:20:13ID:???http://domain/controller/action/hoge/fuga
みたいな、actionに渡すパラメータが二つ(hoge, fuga)あるページがあります。
これを paginator でめくれるようにしたいのです。
ところがビューのpaginatorヘルパーは、最初の hoge までしか認識してくれな
いようで、生成されたURLは
http://domain/controller/action/hoge/page:1
みたいになってしまいます。(hogeだけが残り、fugaが消えている)
hoge, fuga両方とも paginatorに認識させる設定はないでしょうか?
0821nobodyさん
2008/12/05(金) 05:38:33ID:???それってアソシエーションをモデルにまとめる以外になんかあるの?
0822nobodyさん
2008/12/05(金) 09:07:44ID:???これなんてほぼモデルに書いてるよ。
http://www.hideblog.net/nikkis/show/99
コントローラーをプログラムの流れだけといった感じにすると
デバッグも楽だし、何しろ仕様変更の時も対応しやすい。
0823nobodyさん
2008/12/05(金) 11:11:35ID:???SQLが分割されて遅くならない?
完全に柔軟にテーブル結合とかやれるわけじゃないし
0824nobodyさん
2008/12/05(金) 13:36:35ID:???逆に下手にjoinせずにクエリー投げたほうが、キャッシュが働いてパフォーマンスが良くなったりしてるんじゃないかと。
「Cakeのデフォルトで充分じゃね?」みたいなこと調べた人いないかな?
0825nobodyさん
2008/12/05(金) 13:47:18ID:???普通、1クエリにまとめた方が速くなる
0826nobodyさん
2008/12/05(金) 13:56:12ID:???そういう場合、SQLの種類を増やすより、パフォーマンスが良くなるっていう話を聞くよね
0827nobodyさん
2008/12/05(金) 17:34:18ID:???バリデーションでエラーになった入力項目(テキストボックス)の
背景色を変更するのによい方法はないでしょうか?
0829nobodyさん
2008/12/05(金) 18:31:39ID:???バリデーションでエラーになった項目の $form->input で class を指定する、という事
でしょうか?
その場合、バリデーションでエラーになった場合、
その $form-input 項目の css を変更するにはどうしたらいいのでしょう?
何かよい方法があるのでしょうか?
0830nobodyさん
2008/12/05(金) 19:00:08ID:???たとえばUser.usernameがvalidation errorの場合、以下のようになる
<div class="input text error">
<label for="UserUsername">ID</label>
<input name="data[User][username]" id="UserUsername" class="form-error" />
<div class="error-message">入力内容を確認してください</div>
</div>
なので、/webroot/css/cake.generic.cssの以下を修正する
.error
.form-error
.error-message
inputの背景色なら
input.form-error { background-color : red } って感じかな
0831nobodyさん
2008/12/05(金) 19:10:47ID:???FORMヘルパーって、DBテーブルと関係の無いフォームを作ることってできます
か?それともそういうのを作るためなら、ただのHTMLを書いたほうが良いので
しょうか?
0832nobodyさん
2008/12/05(金) 19:50:33ID:???丁寧にありがとうございます。
バリデーション後の画面にて、class="form-error" が自動で付いている事に
全く気付いていませんでした…。
希望の画面になりました、ありがとうございました。
0833nobodyさん
2008/12/05(金) 20:29:18ID:???モデルのところにnull入れてやったらいいんじゃない?
<?php echo $form->text(null, array()); ?>
デフォルトのname属性で足りないなら上書きできる
<?php echo $form->text(null, array('name' => 'title')); ?>
ヘルパのおいしいところを享受できるかはわからん
0834nobodyさん
2008/12/05(金) 21:02:40ID:???1. var $validate = array(
2. 'login' => array(
3. 'rule' => array('minLength', '8'),
4. 'message' => 'ユーザ名は8文字以上にしてください。'
5. )
6. );
の
4. 'message' => 'ユーザ名は8文字以上にしてください。'
の 8 の部分を、\config\const.php などに定義してある値でおきかえたいのですが
class Post extends AppModel
{
var $name = 'Posts';
var $validate = array (
のように、クラスのインスタンス変数で定義?するためか、文字列の結合がエラーになって
できなくて困ってますが、対応できる方法はありますか?
0835nobodyさん
2008/12/05(金) 21:19:03ID:???0836nobodyさん
2008/12/05(金) 21:24:02ID:???/コントローラ/
でアクセスする場合、引数って渡せないよね?
0837nobodyさん
2008/12/05(金) 21:54:29ID:???貼付けられたソースが切れてるのでよくわかりませんが、
そのケースではクラス定数を使った方がベターだと思います
>>836
ルーティングの設定によりますが、アクションのindexが省略されてるんだと思うんですが・・・
0838nobodyさん
2008/12/05(金) 21:56:38ID:???本来indexに続けて書くはずの引数をルートから書いても
アクションだと思われて正しく動作しないよね
ルーティング設定で正規表現書けば出来るんだろうけど
0839nobodyさん
2008/12/05(金) 22:04:42ID:???ありがとうございます。
ごめんなさい、切れてるソースの部分は、
var $validate = array(
'login' => array(
'rule' => array('minLength', USERNAME_MAX_LENGTH),
'message' => 'ユーザ名は' . USERNAME_MAX_LENGTH . '文字以上にしてください。'
)
);
こんな感じにしたいんです。
で、USERNAME_MAX_LENGTH は別途 define してあります。
クラス定数にすると、他で使いまわせないのですが、あきらめるしかないでしょうか?
0840nobodyさん
2008/12/06(土) 00:12:44ID:???/controller/?hoge=hage
こんなんどうよwww
>>839
ん?クラス定数だと使い回せないのはなぜ?
むしろグローバルに宣言しちゃった方がライブラリ化して使い回すときに不便だと思うんだけど
0841nobodyさん
2008/12/06(土) 01:05:12ID:???例えば、モデル内で定義するバリデーションのメッセージとして、
「既に登録されています」というメッセージは、どのモデル、ビューかに関わらず
サイト内で一意にしたいわけです。
これを、モデルのクラス定数に定義するという事は、存在しているモデルの数だけ、
同様の「既に登録されています」を定義しなければならないわけで。
こういったサイト全体で一意としたいメッセージ的な文字列は、クラス定数よりは
グローバル定数で定義しちゃいたい、と思うのですが、よろしくないでしょうか?
0842nobodyさん
2008/12/06(土) 01:20:59ID:???つconfigクラス
ついっそ後で置き換え
0843nobodyさん
2008/12/06(土) 05:40:38ID:???railsでしか使ったことないけど、phpでgettextはあんまり情報ないなー
http://codezine.jp/article/detail/3040
http://labs.unoh.net/2007/10/symfony-i18n-with-gettext.html
0846nobodyさん
2008/12/06(土) 08:42:06ID:???アドバイスをお願いできれば…。
User テーブルがあります。ここは、ログインID と、名前、パスワードがあります。
で、その User テーブルの追加/編集/削除ができるように、UsersController, add/edit ビュー、モデルを
作成しました。
これで、Users テーブルへの追加、削除はできるようになりました。
次に、この Users テーブルの内容に基づいてログインするページを作りたいと思います。
その、ログインを管理するコードというのは、別途コントローラを作成するほうがいいのか、
それとも Users テーブルへのアクセス、という事で、作成済の、UsersControlle や、モデルに
ログインするためのコードを追加するのか、どうすべきなのでしょうか?
同じテーブルへのアクセスでも目的が違う場合は、コントローラも別途作成するものなのか、
それとも、テーブルを主体にコントローラ、モデルをふくらませるべきなのか、
混乱しています。
このあたりアドバイスを頂けるととてもうれしいです。
0847nobodyさん
2008/12/06(土) 10:08:35ID:???http://book.cakephp.org/ja/view/172/%E8%AA%8D%E8%A8%BC
ここら辺みてみるのが良いと思う。
よっぽどの事がない限りはこれで大丈夫じゃないかな
0848nobodyさん
2008/12/06(土) 18:17:57ID:???聞いた話だが、cakeって、月500円レベルのレンタルサーバーでも
十分、実用的なスピードで動くんだよね?
0849nobodyさん
2008/12/06(土) 18:21:01ID:???WEBアプリフレームワークとしては重たい部類
WEBアプリフレームワーク自体は今のコンピュータにとって大した重量じゃない
0850nobodyさん
2008/12/06(土) 18:27:41ID:???その500円ってのがさくらのスタンダードなら問題ない
0851nobodyさん
2008/12/07(日) 10:07:09ID:???3年ぶりにPHPでWebアプリを書く事になったのですが、フレームワークが便利になって
ました。これからはCakePHP1.2を利用しようと考えて開発環境のインストールの所から
書籍を購入して進めようと考えてます。
皆さん、どちらの書籍をお勧めですか?
(自分のPCは現在LAMP環境も削除してしまってます。)
1.CakePHPガイドブック(CakePHP1.1 安藤、新原、堂園 07/10/25)
2.CakePHP徹底入門(CakePHP1.2 イージーゲート 08/8/29)
verが1.1ですがCakePHPガイドブックの方が評判が良さそうです。こちらで良いでしょうか?
また、他に良い書籍がありますでしょうか?よろしくお願いします。
0852nobodyさん
2008/12/07(日) 10:52:40ID:???http://www.garacter.com/
こことハンドブックとポケリファ使って勉強してます
0853nobodyさん
2008/12/07(日) 11:20:32ID:???今普通に1.2で作ったサイトを運営してるけど別に問題ないよ
(さくらスタンダード)
>>852
同感。ある程度理解できたらさっさとポケットリファレンスに移行したほうがいいね
0854nobodyさん
2008/12/07(日) 11:42:22ID:???コメントありがとうございます。
どちらも微妙ですか。
それなら、ver1.2で説明してある「CakePHP徹底入門」にしようかな。
(フラフラしてて、いいのかなあ?)
インストールが出来、基本的な使い方が理解できたら
「CakePHPポケットリファレンス」Webページ情報の活用へ移行なのですね。
0855nobodyさん
2008/12/07(日) 13:14:19ID:???翻訳の方乙であります!
0856nobodyさん
2008/12/07(日) 13:40:53ID:???新開発環境の入門時に書籍を活用するのは、効率よく体系的に入門できるのでお勧め
お金に余裕がある人は、人気の入門書籍による入門を勧める。
0857nobodyさん
2008/12/07(日) 13:47:18ID:???ではなく○時間に余裕のない人は、 だな。
0858nobodyさん
2008/12/07(日) 20:42:33ID:???cakephpは全部読破。
お金がなくても自分への投資だからちょっとくらい奮発しても
いいかもね。
0859nobodyさん
2008/12/07(日) 20:45:28ID:???あれ印刷してまとめれば立派な本だよ
0860nobodyさん
2008/12/07(日) 21:01:21ID:???1.CakePHPガイドブック(CakePHP1.1 安藤、新原、堂園 07/10/25)
2.CakePHP徹底入門(CakePHP1.2 イージーゲート 08/8/29)
のそれぞれの特徴をお知らせ頂けると助かります。
また、>>858さんのお勧めがあれば、よろしくお願いします。
ちなみに「CakePHPポケットリファレンス」は購入の予定です。
0861nobodyさん
2008/12/07(日) 22:03:18ID:???0862nobodyさん
2008/12/07(日) 22:23:30ID:???と厳しく言われてんだろう。わかってやれよ。
0863nobodyさん
2008/12/07(日) 22:50:18ID:???昼飯何回か我慢すれば買えるでしょ。
0864nobodyさん
2008/12/07(日) 22:58:55ID:???どこだっけ?
いや、まだ作りかけなんだろうってのはわかるけど
1.2の前の作りかけバージョンの印刷物があってね。
そのPDF版をとっておきたいなと。
0865nobodyさん
2008/12/08(月) 00:02:09ID:???グローバル的な値の場合、セッションに入れるのが定石でしょうか?
CakePHP でそういったグローバル変数的な値を管理するのに勧められる方法があれば
教えてください。
0868nobodyさん
2008/12/08(月) 16:26:31ID:???何か作れば、そのうち、cake流のやり方が身につく。
最初は大変だけど、慣れれば楽しくなってくる。
0869nobodyさん
2008/12/08(月) 17:07:00ID:???0870nobodyさん
2008/12/08(月) 17:07:56ID:???マニュアルもかなり充実してていいけど、
APIの方見たら、ああこんなメソッドもあったのかみたいなのもあるし、なによりcakeの全てが出てるわけだし。
0871nobodyさん
2008/12/08(月) 17:12:43ID:???とか書いて押してみても、submitの値が送信されてないんだけど。
■ このスレッドは過去ログ倉庫に格納されています