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

    私的良スレ書庫

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

    元スレ【PHP】フレームワーク CakePHP 8ホール目【1.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
    51 : nobodyさん - 2010/03/23(火) 09:10:10 ID:??? (+31,+29,-21)
    てかそれ
    あきらかにセッションごとじゃなくて
    全員でひとつの設定になるよね
    52 : nobodyさん - 2010/03/23(火) 09:11:17 ID:??? (+23,+29,-19)
    >>48
    >>50のような使い方でセキュリティ上まずい点なんかないよ
    53 : nobodyさん - 2010/03/23(火) 09:55:42 ID:??? (+22,+29,-50)
    CakePHPのドキュメントってなんであんなにわかりずらいの
    CodeIgniterみたいな丁寧なドキュメント級のサイト作ってくれたらアフィ毎日踏んであげてもいいですよ
    http://codeigniter.jp/user_guide_ja/toc.html
    54 : nobodyさん - 2010/03/23(火) 10:14:41 ID:??? (-24,-29,-104)
    >>39>>43
    >>44>>55

    ありがとう!
    以前レンタルサーバーで mysql too many connections ってエラーが出たのでSQL恐怖症で。
    このエラーって一般的なレンタルサーバーだとめったに出ないものなのかな。

    cakephp使ってないときだったので、sqlの組み方がおかしかったのかもしれなけど。
    56 : nobodyさん - 2010/03/23(火) 10:45:51 ID:??? (-25,-8,+0)
    >>55
    sageてね

    http://book.cakephp.org/ja/view/189/Automagic-Form-Elements
    第2引数で指定してください
    58 : nobodyさん - 2010/03/23(火) 13:24:29 ID:??? (+29,+29,-33)
    >>54
    同居人が多いレンタルサーバーだとどこでも接続数が絞られてるからエラー出るよ
    チューニングするとか、キャッシュするとかしかない
    59 : nobodyさん - 2010/03/23(火) 17:42:20 ID:??? (+29,+29,-15)
    >>58
    ありがとうございます。
    mysqlとサーバーはほとんど知識無いんですけど、専用サーバーなら出ませんかね?
    次エラーがさくらマネージドにしようか考え中です。
    60 : 48 - 2010/03/23(火) 22:07:17 ID:??? (+32,+29,-12)
    >>52
    なるほど

    >>51
    とりあえず、テストしたら全体でひとつの設定にはならないようです
    なので、この方法を使ってみます。
    62 : nobodyさん - 2010/03/24(水) 10:07:09 ID:??? (+25,+29,-1)
    誰か初心者講座サイト作ってください
    63 : nobodyさん - 2010/03/24(水) 10:08:18 ID:??? (+22,+25,+0)
    >>62
    本一冊くらい買えばいいよ
    64 : nobodyさん - 2010/03/24(水) 10:39:46 ID:??? (+25,-29,-50)
    cakephp1.3を使用しています
    Paginatorでチェックボックス引継ぎって可能ですか?
    10件ずつ表示したとして、次の10件に行っても以前の10件でチェック
    していたチェックボックスは維持させていたいのですが。
    可能でしたらやり方教えてくれませんか
    66 : nobodyさん - 2010/03/24(水) 16:45:26 ID:??? (-28,-29,-45)
    >>59
    専用サーバーだって、mysqlの設定とアクセスの数によっては出る
    その辺はcakephpじゃなくてmysqlの話になるのでmysqlスレいって聞いた方がいいよ
    67 : nobodyさん - 2010/03/24(水) 17:55:12 ID:??? (+24,+29,-36)
    >>64
    それは、Cakeに限らず普通にセッションで持たせれば良いんじゃないのかな?
    68 : nobodyさん - 2010/03/24(水) 23:38:26 ID:??? (-25,-30,-287)
    cakephpで作成日時はcreatedですが、作成した人のIPや更新した人のhost、
    などどう定義してますでしょうか?

    作成した人のIP:created_ip
    作成した人のHOST:created_host
    更新した人のIP:updated_ip
    更新した人のIP:updated_host

    最後のdがdateのdであれば、以下のように定義?

    作成した人のIP:create_ip
    作成した人のHOST:create_host
    更新した人のIP:update_ip
    更新した人のIP:update_host

    守ったほうがよい細かいDBの命令規則のページなどありましたら教えてほしいです。
    69 : nobodyさん - 2010/03/25(木) 00:09:57 ID:??? (-27,-30,-83)
    >>68
    >最後のdがdateのdであれば、以下のように定義?
    -edは過去分詞形なんだが…。

    それはさておき、作成した人、更新した人だったら
    creator_ip、creator_host、updater_ip、updater_host
    でいいんじゃないかと思う。

    個人的にupdaterよりeditorのほうがしっくりくるんだけども。
    70 : nobodyさん - 2010/03/25(木) 00:36:15 ID:??? (+28,+30,-50)
    >>68
    マニュアルのモデルのところに出てる以外は別に決まってないので好きなようにどうぞ。

    >>69 のように英語で考えてわかりやすいように・・・というか、
    自分でコントローラーとかビューのコード書くときに「えっとフィールド名なんだっけ??」って
    いちいち探さなくて済むように作っておけばいいよ。
    71 : nobodyさん - 2010/03/25(木) 09:17:02 ID:??? (+60,-30,-204)
    上記のページはユーザー情報のedit画面です。
    アドレスに指定された$idを元に、データベースから情報を抜き出しています。(例では$Idが43)
    この$idの部分を $hashで表示する方法はないでしょうか?

    http://localhost/scrap/users/edit/43 (これが今のやり方)
    http://localhost/scrap/users/edit/7c02d52cc1be46217793f002640553d7 (これで元データを拾いたい)


    下記が現在のスクリプトです。

    function edit($id = null) {
    if (!empty($this->data)) {
    if($this->User->saveall($this->data, array('validate'=>'first'))){
    $this->Session->setFlash(__('The Data has been saved.', true));
    }
    }
    if (empty($this->data)) {
    $this->data = $this->User->read(null, $id);
    $this->set('data', $this->data);
    }
    }


    単純に$idを$hashにすれば上手くいくかなと思いましたが、上手くいかず。。お助けくださいませ。
    72 : nobodyさん - 2010/03/25(木) 09:23:01 ID:??? (-12,-27,-23)
    >>71
    read()じゃなくてfind()を使いましょう
    マニュアル読んで、editアクションで何が行なわれているかを理解するところから始めると良いよ
    73 : 71 - 2010/03/25(木) 09:32:04 ID:??? (+25,-30,-113)
    >>72 
    ありがとうございます!

    スクリプトを以下のように書くとこうなりました。
    function edit($id = null) {
    if (!empty($this->data)) {
    if($this->User->saveall($this->data, array('validate'=>'first'))){
    $this->Session->setFlash(__('The Data has been saved.', true));
    }
    }
    if (empty($this->data)) {
    $conditions = array("hash" => $id);
    $this->data = $this->User->findAll($conditions);
    $this->set('data', $this->data);
    }
    }


    データは取得できたけど、フォームに自動的に挿入されない。。
    74 : 71 - 2010/03/25(木) 09:34:29 ID:??? (-27,-30,-202)
    ちなみに Viewの部分はこちらです。

    <?php echo $form->create('User',array("action"=>"show"));?>
    <fieldset>
    <legend><?php __('Edit Data');?></legend>
    <?php
    echo $form->input('address');
    echo $form->input('Keyword.0.name');
    echo $form->input('Keyword.1.name');
    echo $form->input('Keyword.2.name');
    ?>
    </fieldset>
    <?php echo $form->end('Submit');?>
    75 : 71 - 2010/03/25(木) 09:40:46 ID:??? (-24,-20,-33)
    すいません!
    findall じゃなくて findで指定したら上手くいきました!

    なんて馬鹿なんだ。。
    76 : 72 - 2010/03/25(木) 09:43:57 ID:??? (+31,+29,-33)
    >>73-75
    全部聞こうとしないで、試行錯誤してごらん
    いつまでも使いこなせないよ
    77 : 71 - 2010/03/25(木) 09:52:43 ID:??? (+27,+29,-40)
    了解しました。
    すぐに聞かずに自分で悩む時間を大切にします!

    この試行錯誤する過程が一番身になるんですよね。。
    78 : 64 - 2010/03/25(木) 17:45:28 ID:??? (-22,-29,-35)
    cookieにsessionですか
    すみませんがPaginetorでの具体的なやり方教えていただけませんか?
    79 : nobodyさん - 2010/03/25(木) 18:04:30 ID:??? (+15,+26,+0)
    >>78
    自分で調べろ
    80 : nobodyさん - 2010/03/25(木) 22:54:10 ID:??? (+29,+28,-21)
    ヒントだけあげるとpaginator使おうが使わなかろうがフォームに値をセットするには
    どうすればいいか考えればいい。
    81 : nobodyさん - 2010/03/25(木) 23:49:51 ID:??? (+33,+30,-75)
    甘やかしすぎるのはよくないんじゃねーの。
    ただ「教えてくれ」と言ってる奴ってダメだよ。
    「ここまで調べたけど、ここが分からない」というのが本来の聞き方でしょ。
    ダメ人間に餌を与えすぎると無意味に肥え太るぞ。
    82 : nobodyさん - 2010/03/26(金) 07:28:24 ID:??? (+24,+29,-22)
    >>78
    とりあえず、それぞれの値を保存、取得するのに
    いくつかのやり方があるということ
    どういうサイトを作っているのか、晒してくれれば
    見にいくよ
    83 : 64 - 2010/03/26(金) 09:23:56 ID:??? (-22,-30,-78)
    POSTで渡すならすぐにわかるのですが
    ちなみにチェックボックスは
    <?php e($form->checkbox('Model.name.'.$id))?>
    という形でこれをforeachで繰り返し出してます。
    POSTで来るなら
    foreach($this->data['Model']['name'] as $key => $value){
    if($value == 1){

    }
    見たいな感じの処理でいいと思うのですが

    もう少しpaginatorを勉強します
    すみませんでした
    84 : nobodyさん - 2010/03/26(金) 11:40:01 ID:??? (+33,+29,-37)
    >>83
    paginatorというブラックボックスを前にして、たぶん本質とは全然関係なさそうなところで
    引っかかってるだろうから俺は >>80 を書いたんだけども、
    paginatorは一旦頭から切り離す。どのページに推移しようがやることは同じだって。
    85 : nobodyさん - 2010/03/26(金) 11:50:37 ID:??? (-1,+3,-1)
    >>83
    javascript使ったらどうかな?
    86 : 64 - 2010/03/26(金) 13:12:20 ID:??? (-27,-30,+0)
    すみませんやりたいことを初めから準に書きますね。

    まず、検索フォーム(page_contololler)から『アイス』と入力して検索
    データベースから『アイス』を含むユーザーを取ってきます。

    ここは
    // 検索条件
    if (env('REQUEST_METHOD') == 'POST' ) {
    $this->Session->write('pageHash', $this->data['Page']);
    $conditionsHash = $this->getWhereParameters($this->data['Page']);
    } elseif (isset($this->passedArgs['Page'])) {
    $this->data['Page'] = $this->Session->read('pageHash');
    $conditionsHash = $this->getWhereParameters($this->data['Page']);
    } else {
    $this->Session->delete('pageHash');
    $conditionsHash = array();
    }
    //検索条件

    function getWhereParameters($pageHash) {

    $conditionsHash = array();

    $conditionsHash['name' Like ?] = $pageHash['page']['name'];
    }

    $this->paginate = array('Model' => array('conditions' => $conditionsHash,
    'limit' => 10
    'page' => 1));

    こういった感じで$conditionsHashをsessionで渡して
    paginatorの次へを押した場合検索条件を引き継ぐようにしています。
    87 : 64 - 2010/03/26(金) 13:16:17 ID:??? (+35,+29,-96)
    ここでリスト一覧にさっきのチェックボック(チェックのON,OFF可能)を持ったユーザが一人一人
    出てくるわけなのですが。
    paginatorの 次へ>> や << 前へを押した場合に
    自分でチェックをつけたチェックボックスを維持したままページを移動したいのです。

    それで最後にチェックの入ったユーザだけを取り出すというシステムです。

    やはり表示上は裏で全部出してjavascriptでの制御が簡単なんですかね
    88 : nobodyさん - 2010/03/26(金) 13:29:56 ID:??? (-27,-29,-43)
    >>87
    次へ>>をsubmitにすれば、controllerでsessionに保存したりできるよね
    しかし、どちらにせよjavascriptは使うのではあるまいか、と思います
    90 : nobodyさん - 2010/03/26(金) 13:38:22 ID:??? (-26,-29,-102)
    ページングしてるページ毎のチェックボックスの状態を記憶せにゃらならんのでしょ。
    自分だったら

    1)チェックボックスにonclickイベントつけて、ユーザーIDとチェック状態を非同期送信
    2)1)をサーバー側のアクションで受けて、DBなりセッションなりに溜めとく
    3)あとは溜めたステータス情報を持ち回って、煮るなり焼くなりお好みひゃっほー

    あ、昼休みおわた
    93 : nobodyさん - 2010/03/26(金) 15:45:33 ID:??? (+23,+30,-37)
    >>92
    ご親切にありがとう!
    ちなみにどれくらいまでが問題無い範囲なんだろ。

    合計が 100越えたら重すぎるとか、300までなら余裕とか。
    もちろんアクセス数などにもよるだろうけど。
    94 : 64 - 2010/03/26(金) 15:48:19 ID:??? (+30,+29,-53)
    いろいろな意見ありがとうございます。
    今後じっくり考えてやってみます。
    ただ、今回は時間があまりないのと自分自身のスキルがたりないのもあってで
    http://css-eblog.com/javascript/javascriptpaging.html
    を使ってすることにしました。

    ありがとうございました。
    95 : nobodyさん - 2010/03/26(金) 16:19:18 ID:??? (+27,+29,-4)
    一画面に全部のデータを読み込むのかな
    ありっちゃありだけど
    96 : nobodyさん - 2010/03/26(金) 19:09:52 ID:??? (-29,-29,-110)
    yahooや楽天のように、ログインしているとユーザ専用のリンクが見えて、非ログイン時には
    その旨をメッセージで表示するにはどうすればよいのでしょう。
    (viewで表示分岐するのは分かるんですが、その前のAuthでどうするか)

    非ログインユーザはゲストとして自動的に認証させる?という方法しか
    思いつかないのですが、スマートな方法はありませんか。
    97 : nobodyさん - 2010/03/26(金) 19:14:59 ID:??? (+27,+29,-9)
    ??
    現状でログインしているかどうかの判断で振り分ければいいのでは?
    98 : nobodyさん - 2010/03/27(土) 11:07:00 ID:??? (-22,-29,-34)
    >>94
    全データが多くなければそれでもいいと思う
    1.3は触ってないからわからないけど
    1.2なら、paginatorヘルパーで出力するときに引数でFORMのパラメータ渡せば
    検索条件付のURLによるページングも作れる
    100 : nobodyさん - 2010/03/27(土) 18:21:26 ID:??? (+27,+29,-34)
    最近マニュアル読まないで質問する人増えたなあ
    基本的なことは一通り書いてあるけどねえ
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / php スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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