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

    私的良スレ書庫

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

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

    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
    651 : nobodyさん - 2011/04/22(金) 12:48:06.33 ID:??? (-27,-30,-230)
    iモードシミュレータIIで携帯フォームの動作確認をしているのですが、
    モード7の時はSJISで送信され、モード8の時はUTF-8で送信されます。

    Cakeでは、ビューをUTF-8で作り、出力時の文字コードは
    <?php echo $html->charset('SJIS'); ?>
    と言う感じでShift_JISにしています。

    ただ、$form->createのencodign(accept-charset)はutf8のままなので、
    UTF-8としてデータが送信されてくると思うのですが・・・原因が分かりません。

    古い端末だと文字コード変換が上手く行かないとかあるのでしょうか?
    直接Cakeの質問と違うかも知れませんが、分かる方いたら教えて下さい
    652 : nobodyさん - 2011/04/23(土) 00:32:58.36 ID:??? (-27,-30,-75)
    CakePHPの1.3でDBの更新処理をSQLで直書きしなくてはならなくなったのですが、
    普通のINSERT文をModel::execute()で実行しようとするとシンタックスエラーに
    なってしまいます。
    でもちゃんと正しいINSERT文なんです。
    ちなみにModel::query()で実行すると正しく実行されます。
    Model::execute()って何か問題があるのでしょうか?
    653 : nobodyさん - 2011/04/23(土) 01:09:09.71 ID:??? (+27,+29,+0)
    どこのexecute()が実際呼ばれてるか
    追いかけてみたらいい
    655 : nobodyさん - 2011/04/23(土) 05:42:00.71 ID:??? (-25,-23,-9)
    モデルとビヘイビアに同じ名前の関数がある場合、$this->関数名で呼ぶとモデルの方が呼ばれるようですが、
    ビヘイビアの方を呼びたい場合はどう書けば良いのでしょうか
    657 : nobodyさん - 2011/04/23(土) 06:50:55.20 ID:??? (+27,+29,-6)
    ありがとう
    そういうことをちゃんとマニュアルに書いておいてくれればいいのにと思います
    658 : nobodyさん - 2011/04/23(土) 10:16:16.61 ID:??? (+27,+29,-18)
    マニュアルに書くレベルのものとそうではないものもあると思うけどね。
    マニュアルにない使い方するときは、ソースコード追ったほうがいいよ。
    659 : nobodyさん - 2011/04/23(土) 11:25:02.93 ID:??? (-29,-30,+0)
    hasMeny や belongsTo で指定のテーブルだけ取得することは可能でしょうか?
    下の例では Data に Category を belongsTo して、
    Category は Auther を belongsTo、Data を hasMany してます。

    $this->Data->find('first', array(
    'conditions' => array('Data.id' => $data_id),
    'recursive' => 2
    ));

    Array(
    [Data] => Array(
    [fields] => 'value',
    [Category] => Array(
    [fields] => 'value',
    [Auther] => Array(
    [fields] => 'value'
    )
    [Data] => Array(
    [fields] => 'value'
    )
    )
    )
    )

    これで find すると data['Data']['Category'] 以下にもう一度 Data を取得してしまいます。
    data['Data']['Category']['Auther'] は欲しいので、アソシエーションを利用してData を読まずに Auther だけ取ってくる方法はありますか?
    661 : 底辺 - 2011/04/23(土) 11:34:30.80 ID:??? (-23,-22,+0)
    >>660
    containerビヘイビアを使いなさい
    662 : nobodyさん - 2011/04/23(土) 12:18:02.93 ID:??? (+29,+29,-12)
    >>661
    ググっても出てこないんですが、サードパーティですか?
    もう少し詳しくおしえてもらっていいですか?
    663 : nobodyさん - 2011/04/23(土) 12:23:07.77 ID:??? (+23,+20,-58)
    ログイン管理って要はセッション管理なわけだし、
    Auth使うよりも自作(か、セションコンポーネント)使う方がいいんじゃね?

    なんかAuthの使い勝手が良いんだか悪いんだか分からなくなる時がある。
    664 : 底辺 - 2011/04/23(土) 15:05:11.60 ID:??? (+31,+29,-50)
    >>662
    containか?
    最初からcakeに入ってるよ。

    アソシエーションは、時間かけて勉強した方があとあと役に立つから、焦らず、ゆっくり。
    665 : 底辺 - 2011/04/23(土) 15:06:38.87 ID:??? (+31,+29,-19)
    >>663
    俺もある。
    一つ言えるのは、ログイン後に前のページに戻るのが楽。
    666 : nobodyさん - 2011/04/23(土) 16:31:56.32 ID:??? (+27,+29,-42)
    うちもセッション管理は自前で持ってる。
    ユーザー区分が3つあって、見せていい画面が決まっていて、その遷移もphp上で実装した。
    667 : nobodyさん - 2011/04/23(土) 16:40:36.63 ID:??? (+27,+29,-62)
    Authに限らずセッション周りは色々挙動が謎すぎて、全部自前で作って使ってる
    まあタダだしそのくらいはしょーがないよね
    668 : nobodyさん - 2011/04/23(土) 21:21:23.23 ID:??? (+27,+29,-55)
    やっぱり、みんなセッション管理は自前だったかw
    俺はなんとかCaleの機能で出来ないかと悪戦苦闘していたが、
    やりづらいこともあるよな。こだわりすぎはよくないな
    669 : nobodyさん - 2011/04/23(土) 23:34:00.74 ID:??? (+27,+29,-22)
    Cake自体が完成されたFWじゃないからな
    しかし使えないほど駄目でもないのが悩み所
    670 : nobodyさん - 2011/04/24(日) 00:03:38.71 ID:??? (+27,+29,-8)
    いやー、他でMVCを学んだ人には話が通じやすくていいよ。
    671 : nobodyさん - 2011/04/24(日) 00:23:08.15 ID:??? (-23,-21,-12)
    Cakeはmod_rewriteに依存しすぎてるの駄目なんだよな。
    テスト環境で他のアプリと相乗りさせようとしたらハマりまくった。
    672 : nobodyさん - 2011/04/24(日) 00:27:18.69 ID:??? (+27,+29,-8)
    それはあるな。サイトの規模が大きくなるほど、ファイル構造がややこしくなるし。
    676 : nobodyさん - 2011/04/24(日) 21:59:25.37 ID:??? (-19,-29,-111)
    ちょうど上にAuthの話題があるので、質問します。

    ログイン→リダイレクト→ログイン後のページ

    に移動するのがAuthの機能だと思いますが、
    ログイン成功時に、ユーザ情報以外のセッションを付加して
    ログイン後のページに推移させるにはどうすればいいのでしょうか?
    679 : nobodyさん - 2011/04/25(月) 22:43:47.68 ID:??? (-7,-1,-17)
    >>678
    うちもそれで実装してます。
    書きたいこと全部Sessionに書いてファイルとして保存。
    682 : nobodyさん - 2011/04/26(火) 00:39:30.76 ID:??? (+14,+21,-15)
    普通はセッションじゃないすか?
    683 : nobodyさん - 2011/04/26(火) 00:49:03.08 ID:??? (-27,-30,-26)
    if (empty($this->data)) {
      $this->Session->setFlash('登録画面からやりなおしてください');
      $this->redirect('/xxxx/error');
    }
    }
    684 : 681 - 2011/04/26(火) 01:17:51.28 ID:??? (-29,-29,-128)
    すみません、完了画面でもバリデーションはやってるので
    $this->dataの値はチェックしてました。

    完了画面ではユニークなキーを発行してmemcachedにフォームの値を入れて
    確認メールを送信するのですが、
    完了画面でブラウザの更新ボタンを押すともう一度
    ユニークなキーでmemcachedにフォームの値を入れて
    確認メールを送信してしまうのです。

    これどうしたらいいかなーと。
    685 : nobodyさん - 2011/04/26(火) 09:35:16.53 ID:??? (-29,-30,-167)
    サイトで、
    hogehoge.com/controller/action/

    hogehoge.com/abc/controller/action/

    を同じアクションにして、かつ
    リンクはabcのprefixつきにしたいのですが、良い方法ありますでしょうか?

    動きとしてはprefixルーティングで abc_indexを呼ぶのではなくindexを呼ぶようにしたいのです。

    dispatchを書き換えていまはうまくいっていますが、スマートでないような気がして、、

    688 : nobodyさん - 2011/04/26(火) 18:29:04.76 ID:??? (+2,+4,-36)
    コントローラにアクセスした時、セッションかクッキーで保存すれば?
    690 : nobodyさん - 2011/04/27(水) 00:01:18.98 ID:??? (+25,-29,-48)
    2ch のスレッドとメッセージのような t hasMany m の関係で、
    スレッドの一覧を取りたいんですけど、メッセージの投稿日時で
    スレッドをソートしたいときは、どう書けば良いのでしょうか?
    693 : 690 - 2011/04/27(水) 19:36:38.21 ID:??? (-27,-30,-76)
    こんな感じでやってみたのですが、SQL をデバッグで見ると
    FROM に message が指定されておらず・・・。

    $this->paginate = array(
    'contain' => array(
    'Message' => array(
    'fields' => array('id', 'created')
    )
    ),
    694 : 690 - 2011/04/27(水) 19:39:00.83 ID:??? (-27,-30,-71)
    'conditions' => array(
    'Thread.delete_flag <>' => 1
    ),
    'limit' => 10,
    'order' => array(
    'Message.created' => 'desc' // ダメなとこ
    )
    );
    697 : nobodyさん - 2011/04/28(木) 10:44:52.76 ID:??? (-29,-30,-156)
    その場合は、Messageモデルのhasmanyの定義にorderを書く。

    それが嫌な場合はページネートにjoin句を書く。

    $this->paginate = array(
    Thread=> array(
    'conditions' => array(),
    'limit' => 24,
    'order' => array(),
    'joins' => array(
        array(
                            'type' => 'LEFT',
                             'alias' => 'Message
                             'table' => ''messages',
    'Message.created' => 'desc'
    )

    ))
    );
    700 : 690 - 2011/04/28(木) 21:52:25.68 ID:??? (-21,-29,-94)
    冷静に SQL でやりたい事を書いていたら、DISTINCT か
    GROUP BY を使うことなると今更ながら気づきました。

    ただ(MySQL の仕様なのか)意図した形でソートできず、
    結局 Thread の modified フィールドを Message の
    挿入時に update するのが手っ取り早いのかな・・・と
    諦めの段階に入っています。

    レス下さった皆様、ありがとうございました。
    また、何かあれば宜しくお願いします。
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / php スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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