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

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

    php覧 / PC版 /
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter

    801 = :

    >>699
    何というコントローラ&メソッド&ビューに対して
    どんなURLでアクセスしたか教えたまえ

    802 = :

    テーブル:Areas
    URL:http://localhost/Areas

    MVCはbake allで作ってるからテーブル名から正しく生成されてるはず

    804 = :

    symfonyより重くはないし、コード生成にしても結局実務で使えないのはsymfonyも同じ。

    805 = :

    自己解決。
    特定の場合に、cake allで生成すると
    cakephpが内部で使ってるpublishと言うダミーモデルのデータが残ってしまうらしい。
    いくつかモデルを生成した中で、一つだけpublishがはいってしまったものがあった。(Userモデル)
    cakephpはデフォルトで全モデルを読み込んでるらしく、どのコントローラにアクセスしようと
    publishesテーブルが無いと怒られた。

    806 = :

    >>805
    特定の場合って何だ?

    807 = :

    そこまでは特定してない
    でもcakeのダミーモデルなのは確か

    808 = :

    教えてほしいことがあるんだけど、いいかな?

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

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

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

    CakePHPに、これを実現するのに便利な仕組みはないんだろうか?
    普通に$this->dataからを取得して、implode('/', ...)でつないで redirectす
    るしかないのかしら?

    809 = :

    そんな小さなことまでフレームワークでサポートしたらキリがない

    811 = :

    >>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 = :

    正規表現使えばどんなパターンの差し当てでも出来るけど

    813 = :

    そういうことかー。しかしこういう黒魔術に深入りするのは避けたい。

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

    つうかCake関係ないな。すんません。

    814 = :

    汎用的なリダイレクトページ作ったら良い

    816 = :

    多対多のjoinテーブルで
    両方のテーブルのフィールドを条件にして片方のテーブルのレコードを抽出したい場合、どうすれば良いですか?
    つまりjoinテーブルでつながれた相手側のテーブルのフィールドで自分のレコードを絞り込むと言う事です。

    818 = :

    >>813
    そんなこといったらcakeだって黒魔術(シェア的にww

    820 = :

    すみませんが、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 = :

    コントローラよりモデルを厚くしたほうがいいっていうけど
    それってアソシエーションをモデルにまとめる以外になんかあるの?

    822 = :

    >>821
    これなんてほぼモデルに書いてるよ。
    http://www.hideblog.net/nikkis/show/99

    コントローラーをプログラムの流れだけといった感じにすると
    デバッグも楽だし、何しろ仕様変更の時も対応しやすい。

    823 = :

    cakephpのモデルに合わせて書いてると
    SQLが分割されて遅くならない?
    完全に柔軟にテーブル結合とかやれるわけじゃないし

    824 = :

    今まさに>>823が気になってたんだけどさ。
    逆に下手にjoinせずにクエリー投げたほうが、キャッシュが働いてパフォーマンスが良くなったりしてるんじゃないかと。
    「Cakeのデフォルトで充分じゃね?」みたいなこと調べた人いないかな?

    825 = :

    さすがにそれはない
    普通、1クエリにまとめた方が速くなる

    826 = :

    更新の少ないテーブルの場合、ほぼノータイムで返ってきてることが多い
    そういう場合、SQLの種類を増やすより、パフォーマンスが良くなるっていう話を聞くよね

    829 = :

    >>828 ありがとうございます。

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

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

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


    830 = :

    >>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 = :

    唐突ですけど、皆さんにお聞きしたいことがあります。
    FORMヘルパーって、DBテーブルと関係の無いフォームを作ることってできます
    か?それともそういうのを作るためなら、ただのHTMLを書いたほうが良いので
    しょうか?

    832 = :

    >>830
    丁寧にありがとうございます。

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

    希望の画面になりました、ありがとうございました。

    833 = :

    >>831
    モデルのところにnull入れてやったらいいんじゃない?
    <?php echo $form->text(null, array()); ?>

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

    ヘルパのおいしいところを享受できるかはわからん

    834 = :

    バリデーションのルールで

    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 = :

    listが予約語になっててアクションに使えない罠

    836 = :

    レコードの一覧出すアクションの名前なんにしたらいい?
    /コントローラ/
    でアクセスする場合、引数って渡せないよね?

    837 = :

    >>834
    貼付けられたソースが切れてるのでよくわかりませんが、
    そのケースではクラス定数を使った方がベターだと思います

    >>836
    ルーティングの設定によりますが、アクションのindexが省略されてるんだと思うんですが・・・

    838 = :

    省略されてるとして、
    本来indexに続けて書くはずの引数をルートから書いても
    アクションだと思われて正しく動作しないよね
    ルーティング設定で正規表現書けば出来るんだろうけど

    841 = :

    >>840
    例えば、モデル内で定義するバリデーションのメッセージとして、
    「既に登録されています」というメッセージは、どのモデル、ビューかに関わらず
    サイト内で一意にしたいわけです。

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

    こういったサイト全体で一意としたいメッセージ的な文字列は、クラス定数よりは
    グローバル定数で定義しちゃいたい、と思うのですが、よろしくないでしょうか?

    842 = :

    つ継承
    つconfigクラス
    ついっそ後で置き換え

    844 = :

    >>841
    共通といったって、そんな短い単語を共通化してどうすんの?
    世界を視野に入れたプログラム作ってるの?

    845 = :

    >>841
    マスタテーブル作れば良いじゃん
    大量のグローバル定数であふれる事は避けるべき

    846 = :

    CakePHP というか、MVC の考え方がいまいちよくわかってない気がするんですが、
    アドバイスをお願いできれば…。

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

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

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

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

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

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

    このあたりアドバイスを頂けるととてもうれしいです。

    848 = :

    質問

    聞いた話だが、cakeって、月500円レベルのレンタルサーバーでも
    十分、実用的なスピードで動くんだよね?

    849 = :

    なんとも答えられない
    WEBアプリフレームワークとしては重たい部類
    WEBアプリフレームワーク自体は今のコンピュータにとって大した重量じゃない

    850 = :

    値段=スペックじゃないので何とも言えないけど
    その500円ってのがさくらのスタンダードなら問題ない


    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / php一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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