のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,062,899人
昨日:no data人
今日:
最近の注目
人気の最安値情報

    私的良スレ書庫

    不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitter
    ログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。

    元スレ【PHP】フレームワーク CakePHP 4ホール目【v1.2】

    php スレッド一覧へ / php とは? / 携帯版 / dat(gz)で取得 / トップメニュー
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
    レスフィルター : (試験中)
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
    801 : nobodyさん - 2008/12/03(水) 14:50:40 ID:??? (+46,+17,-55)
    >>699
    何というコントローラ&メソッド&ビューに対して
    どんなURLでアクセスしたか教えたまえ
    802 : nobodyさん - 2008/12/03(水) 14:55:18 ID:??? (+9,-29,-11)
    テーブル:Areas
    URL:http://localhost/Areas

    MVCはbake allで作ってるからテーブル名から正しく生成されてるはず
    803 : nobodyさん - 2008/12/03(水) 17:40:54 ID:??? (-2,-30,-41)
    >>802
    Publish モデルがあったり、areas_controller.php で $uses = array('Publish') してない?
    804 : nobodyさん - 2008/12/03(水) 22:50:50 ID:??? (+4,-23,-29)
    symfonyより重くはないし、コード生成にしても結局実務で使えないのはsymfonyも同じ。
    805 : 802 - 2008/12/04(木) 03:52:30 ID:??? (+7,-29,-108)
    自己解決。
    特定の場合に、cake allで生成すると
    cakephpが内部で使ってるpublishと言うダミーモデルのデータが残ってしまうらしい。
    いくつかモデルを生成した中で、一つだけpublishがはいってしまったものがあった。(Userモデル)
    cakephpはデフォルトで全モデルを読み込んでるらしく、どのコントローラにアクセスしようと
    publishesテーブルが無いと怒られた。
    806 : nobodyさん - 2008/12/04(木) 10:00:01 ID:??? (+25,+1,-14)
    >>805
    特定の場合って何だ?
    807 : nobodyさん - 2008/12/04(木) 10:09:08 ID:??? (+57,+29,-5)
    そこまでは特定してない
    でもcakeのダミーモデルなのは確か
    808 : nobodyさん - 2008/12/04(木) 10:42:12 ID:??? (+4,-30,-172)
    教えてほしいことがあるんだけど、いいかな?

    2-3個しか入力項目のないフォームがあって、それらの項目に、
    hoge, piyo, fuga とか入っているとする。

    これを submit したとき、こんなURLに遷移させたい。
    http://(base-url)/hoge/piyo/fuga

    JavaScriptを使えば簡単だけど、できたらクライアントサイドスクリプトには
    依存したくない。

    CakePHPに、これを実現するのに便利な仕組みはないんだろうか?
    普通に$this->dataからを取得して、implode('/', ...)でつないで redirectす
    るしかないのかしら?
    809 : nobodyさん - 2008/12/04(木) 10:46:31 ID:??? (+59,+29,-16)
    そんな小さなことまでフレームワークでサポートしたらキリがない
    810 : nobodyさん - 2008/12/04(木) 10:46:48 ID:??? (+0,-29,-2)
    >>808
    mod_rewrite は?
    811 : nobodyさん - 2008/12/04(木) 11:10:30 ID:??? (+7,-30,-127)
    >>809
    まあそうなんだけど、もし元々あるんなら利用したいと思って。

    >>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
    こっちもできるの?
    812 : nobodyさん - 2008/12/04(木) 13:22:38 ID:??? (+53,+25,-17)
    正規表現使えばどんなパターンの差し当てでも出来るけど
    813 : nobodyさん - 2008/12/04(木) 14:33:53 ID:??? (+13,-29,-59)
    そういうことかー。しかしこういう黒魔術に深入りするのは避けたい。

    Apache module mod_rewrite
    http://www.net-newbie.com/trans/mod_rewrite.html
    > 膨大な設定例やドキュメントがあるにもかかわらず、 mod_rewrite は黒魔
    > 術である。かなりイケてるっぽい黒魔術だが、 やっぱり所詮は黒魔術である。
    > -- Brian Moore

    つうかCake関係ないな。すんません。
    814 : nobodyさん - 2008/12/04(木) 14:45:09 ID:??? (+23,-4,-1)
    汎用的なリダイレクトページ作ったら良い
    815 : nobodyさん - 2008/12/04(木) 18:08:36 ID:??? (-1,-29,-98)
    cakephpのモデルはアソシエーションをクラスメンバに定義するから
    変数・グローバル変数をアソシエーションの定義に使えないよね?
    この問題はどう解決すればいい?
    816 : nobodyさん - 2008/12/04(木) 19:08:19 ID:??? (+72,+29,-63)
    多対多のjoinテーブルで
    両方のテーブルのフィールドを条件にして片方のテーブルのレコードを抽出したい場合、どうすれば良いですか?
    つまりjoinテーブルでつながれた相手側のテーブルのフィールドで自分のレコードを絞り込むと言う事です。
    817 : 816 - 2008/12/04(木) 19:11:19 ID:??? (-1,-29,-36)
    cakeの機能を使って抽出する場合です
    SQLを書くしかありませんか?
    818 : nobodyさん - 2008/12/04(木) 19:40:46 ID:??? (+59,+29,-18)
    >>813
    そんなこといったらcakeだって黒魔術(シェア的にww
    819 : nobodyさん - 2008/12/04(木) 22:21:39 ID:??? (+0,-29,-17)
    >>813
    routeの設定でいけるんじゃね?
    http://cakephp.jp/doc/ch04s03.html#id4799268
    820 : nobodyさん - 2008/12/04(木) 23:20:13 ID:??? (+3,-30,-152)
    すみませんが、paginatorの設定について教えてください。

    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に認識させる設定はないでしょうか?
    821 : nobodyさん - 2008/12/05(金) 05:38:33 ID:??? (+67,+29,-43)
    コントローラよりモデルを厚くしたほうがいいっていうけど
    それってアソシエーションをモデルにまとめる以外になんかあるの?
    822 : nobodyさん - 2008/12/05(金) 09:07:44 ID:??? (+66,+29,-34)
    >>821
    これなんてほぼモデルに書いてるよ。
    http://www.hideblog.net/nikkis/show/99

    コントローラーをプログラムの流れだけといった感じにすると
    デバッグも楽だし、何しろ仕様変更の時も対応しやすい。
    823 : nobodyさん - 2008/12/05(金) 11:11:35 ID:??? (+67,+29,-55)
    cakephpのモデルに合わせて書いてると
    SQLが分割されて遅くならない?
    完全に柔軟にテーブル結合とかやれるわけじゃないし
    824 : nobodyさん - 2008/12/05(金) 13:36:35 ID:??? (+72,+29,-51)
    今まさに>>823が気になってたんだけどさ。
    逆に下手にjoinせずにクエリー投げたほうが、キャッシュが働いてパフォーマンスが良くなったりしてるんじゃないかと。
    「Cakeのデフォルトで充分じゃね?」みたいなこと調べた人いないかな?
    825 : nobodyさん - 2008/12/05(金) 13:47:18 ID:??? (+57,+29,-17)
    さすがにそれはない
    普通、1クエリにまとめた方が速くなる
    826 : nobodyさん - 2008/12/05(金) 13:56:12 ID:??? (+57,+29,-33)
    更新の少ないテーブルの場合、ほぼノータイムで返ってきてることが多い
    そういう場合、SQLの種類を増やすより、パフォーマンスが良くなるっていう話を聞くよね
    827 : nobodyさん - 2008/12/05(金) 17:34:18 ID:??? (+0,-29,-59)
    cakephp 1.2 を使っています。
    バリデーションでエラーになった入力項目(テキストボックス)の
    背景色を変更するのによい方法はないでしょうか?
    828 : nobodyさん - 2008/12/05(金) 18:18:49 ID:??? (+0,-29,-11)
    >>827
    $form->inputで記述すれば、あとは、CSSで対応できると思うけど
    829 : nobodyさん - 2008/12/05(金) 18:31:39 ID:??? (+4,-30,-70)
    >>828 ありがとうございます。

    バリデーションでエラーになった項目の $form->input で class を指定する、という事
    でしょうか?

    その場合、バリデーションでエラーになった場合、
    その $form-input 項目の css を変更するにはどうしたらいいのでしょう?

    何かよい方法があるのでしょうか?


    830 : nobodyさん - 2008/12/05(金) 19:00:08 ID:??? (+5,-30,-158)
    >>829
    たとえば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 } って感じかな
    831 : nobodyさん - 2008/12/05(金) 19:10:47 ID:??? (+64,+29,-39)
    唐突ですけど、皆さんにお聞きしたいことがあります。
    FORMヘルパーって、DBテーブルと関係の無いフォームを作ることってできます
    か?それともそういうのを作るためなら、ただのHTMLを書いたほうが良いので
    しょうか?
    832 : nobodyさん - 2008/12/05(金) 19:50:33 ID:??? (+3,-29,-14)
    >>830
    丁寧にありがとうございます。

    バリデーション後の画面にて、class="form-error" が自動で付いている事に
    全く気付いていませんでした…。

    希望の画面になりました、ありがとうございました。
    833 : nobodyさん - 2008/12/05(金) 20:29:18 ID:??? (+11,-30,-53)
    >>831
    モデルのところにnull入れてやったらいいんじゃない?
    <?php echo $form->text(null, array()); ?>

    デフォルトのname属性で足りないなら上書きできる
    <?php echo $form->text(null, array('name' => 'title')); ?>

    ヘルパのおいしいところを享受できるかはわからん
    834 : nobodyさん - 2008/12/05(金) 21:02:40 ID:??? (+8,-30,-203)
    バリデーションのルールで

    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 (

    のように、クラスのインスタンス変数で定義?するためか、文字列の結合がエラーになって
    できなくて困ってますが、対応できる方法はありますか?
    835 : nobodyさん - 2008/12/05(金) 21:19:03 ID:??? (+26,-1,-1)
    listが予約語になっててアクションに使えない罠
    836 : nobodyさん - 2008/12/05(金) 21:24:02 ID:??? (+3,-29,-44)
    レコードの一覧出すアクションの名前なんにしたらいい?
    /コントローラ/
    でアクセスする場合、引数って渡せないよね?
    837 : nobodyさん - 2008/12/05(金) 21:54:29 ID:??? (+65,+29,-51)
    >>834
    貼付けられたソースが切れてるのでよくわかりませんが、
    そのケースではクラス定数を使った方がベターだと思います

    >>836
    ルーティングの設定によりますが、アクションのindexが省略されてるんだと思うんですが・・・
    838 : nobodyさん - 2008/12/05(金) 21:56:38 ID:??? (+7,+29,-55)
    省略されてるとして、
    本来indexに続けて書くはずの引数をルートから書いても
    アクションだと思われて正しく動作しないよね
    ルーティング設定で正規表現書けば出来るんだろうけど
    841 : nobodyさん - 2008/12/06(土) 01:05:12 ID:??? (+22,+29,-127)
    >>840
    例えば、モデル内で定義するバリデーションのメッセージとして、
    「既に登録されています」というメッセージは、どのモデル、ビューかに関わらず
    サイト内で一意にしたいわけです。

    これを、モデルのクラス定数に定義するという事は、存在しているモデルの数だけ、
    同様の「既に登録されています」を定義しなければならないわけで。

    こういったサイト全体で一意としたいメッセージ的な文字列は、クラス定数よりは
    グローバル定数で定義しちゃいたい、と思うのですが、よろしくないでしょうか?
    842 : nobodyさん - 2008/12/06(土) 01:20:59 ID:??? (+10,-17,+0)
    つ継承
    つconfigクラス
    ついっそ後で置き換え
    843 : nobodyさん - 2008/12/06(土) 05:40:38 ID:??? (-1,-29,-31)
    メッセージテーブル作るならgettext使ってみては?
    railsでしか使ったことないけど、phpでgettextはあんまり情報ないなー
    http://codezine.jp/article/detail/3040
    http://labs.unoh.net/2007/10/symfony-i18n-with-gettext.html

    844 : nobodyさん - 2008/12/06(土) 06:37:03 ID:??? (+67,+29,-21)
    >>841
    共通といったって、そんな短い単語を共通化してどうすんの?
    世界を視野に入れたプログラム作ってるの?
    845 : nobodyさん - 2008/12/06(土) 06:40:34 ID:??? (+57,+29,-24)
    >>841
    マスタテーブル作れば良いじゃん
    大量のグローバル定数であふれる事は避けるべき
    846 : nobodyさん - 2008/12/06(土) 08:42:06 ID:??? (+12,-30,-256)
    CakePHP というか、MVC の考え方がいまいちよくわかってない気がするんですが、
    アドバイスをお願いできれば…。

    User テーブルがあります。ここは、ログインID と、名前、パスワードがあります。

    で、その User テーブルの追加/編集/削除ができるように、UsersController, add/edit ビュー、モデルを
    作成しました。

    これで、Users テーブルへの追加、削除はできるようになりました。

    次に、この Users テーブルの内容に基づいてログインするページを作りたいと思います。

    その、ログインを管理するコードというのは、別途コントローラを作成するほうがいいのか、
    それとも Users テーブルへのアクセス、という事で、作成済の、UsersControlle や、モデルに
    ログインするためのコードを追加するのか、どうすべきなのでしょうか?

    同じテーブルへのアクセスでも目的が違う場合は、コントローラも別途作成するものなのか、
    それとも、テーブルを主体にコントローラ、モデルをふくらませるべきなのか、
    混乱しています。

    このあたりアドバイスを頂けるととてもうれしいです。
    847 : nobodyさん - 2008/12/06(土) 10:08:35 ID:??? (+59,+29,-11)
    >>846
    http://book.cakephp.org/ja/view/172/%E8%AA%8D%E8%A8%BC
    ここら辺みてみるのが良いと思う。
    よっぽどの事がない限りはこれで大丈夫じゃないかな
    848 : nobodyさん - 2008/12/06(土) 18:17:57 ID:??? (+63,+29,-43)
    質問

    聞いた話だが、cakeって、月500円レベルのレンタルサーバーでも
    十分、実用的なスピードで動くんだよね?
    849 : nobodyさん - 2008/12/06(土) 18:21:01 ID:??? (+57,+29,-66)
    なんとも答えられない
    WEBアプリフレームワークとしては重たい部類
    WEBアプリフレームワーク自体は今のコンピュータにとって大した重量じゃない
    850 : nobodyさん - 2008/12/06(土) 18:27:41 ID:??? (+57,+29,-21)
    値段=スペックじゃないので何とも言えないけど
    その500円ってのがさくらのスタンダードなら問題ない
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / php スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

    類似してるかもしれないスレッド


    トップメニューへ / →のくす牧場書庫について