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

    私的良スレ書庫

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

    元スレ[PHP][フレームワーク]CodeIgniterスレ

    php スレッド一覧へ / php とは? / 携帯版 / dat(gz)で取得 / トップメニュー
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : - Rapyd + 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
    レスフィルター : (試験中)
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
    501 : nobodyさん - 2009/01/19(月) 21:52:16 ID:??? (+70,+29,-4)
    >>600
    いやあ、指南役のお兄さん頼もしいわ。
    ほれた
    502 : nobodyさん - 2009/01/20(火) 14:45:10 ID:??? (+23,-30,-101)
    Active Recordについて少し質問です。

    updateメソッドを、事前のwhereなしで呼ぶとテーブル内のデータを全部更新してしまって、
    アボンしますよね?
    これ、よくやらかしてしまうのですが、よい回避方法ないでしょうか?

    マニュアル見ると、
     $this->db->update('mytable', $data, "id = 4");
    みたいに、引数でwhereを追加するように決めてしまえばいいのですが、
    うっかり引数を省略すると、アボンしてしまいます。

    引数省略しないようないい方法ないですかね?
    503 : nobodyさん - 2009/01/20(火) 18:20:44 ID:??? (+46,+28,+0)
    まじすか
    504 : nobodyさん - 2009/01/20(火) 19:23:54 ID:??? (+12,-29,-46)
    >>502
    ActiveRecordの使い方としてそれはどうなんだ
    find()で取ってきたものをupdate()なら、そうはならんのでは?
    と、CIを使ったことのない俺が書いてみる
    505 : 502 - 2009/01/21(水) 10:29:58 ID:??? (+4,-30,-107)
    >>504
    私の場合、すでにあったら上書き、なかったらinsertという風な処理を書いていたのですが、
    たまに、insert()をupdate()に置き換えただけで実行してしまい、テーブルごとアボンしてしまうのです。

    まあ、アフォといえばアフォなのですがw

    普通は >>504の意図するように、get_where()->result(); なりしてupdateしたいidを得て、
    そのidをupdateにつっこむもんですよね・・・。
    506 : nobodyさん - 2009/01/21(水) 23:55:24 ID:??? (+6,-30,-164)
    ciのActiveRecordって、save()でidがあればupdate, なければinsertって判断しないのか・・・
    リファレンス見たけど、SQLが透けて見えそうな薄い実装だね。だから速いんだろうけど。

    >>502
    常にwhere()呼んだら駄目か?insert()なら無視してくれない?
    すごく間抜けに見えるだろうけど。

    あるいは、ラッパーかぶせてidを指定しないupdate()を隠すとか。
    もしくは配列からidをとって勝手にwhereに入れるupdate()ラッパーを書くとか。
    507 : nobodyさん - 2009/02/02(月) 17:00:10 ID:??? (+91,+29,-59)
    1.7ドキュメントの翻訳作業が進んでいるみたいですね。
    http://lists.sourceforge.jp/mailman/archives/codeigniter-users/2009-February/001699.html

    俺も手伝いたいんだが、こういのっていきなり着手しちゃっていいもんなのかな?
    皆さんの訳がとても上手いので、なんか気が引けてしまう。
    508 : nobodyさん - 2009/02/03(火) 00:20:37 ID:U0x1Z73i (+24,+29,-2)
    おっと、ちいたんの悪口はそこまでだ。
    509 : nobodyさん - 2009/02/03(火) 01:44:51 ID:??? (+70,+29,-8)
    >>507
    翻訳してる人乙です。
    俺もちょっとくらいオープンソースに関わってみたいな…なんて思ってる^^
    510 : nobodyさん - 2009/02/11(水) 12:25:10 ID:??? (-11,-29,+0)
    1.7.1
    512 : nobodyさん - 2009/02/11(水) 13:41:31 ID:??? (-7,-29,-38)
    >>511
    デフォ(コントローラのコンストラクタ等)でno-cacheにしとくのではだめなん?
    513 : nobodyさん - 2009/02/11(水) 14:15:46 ID:??? (-2,-30,-27)
    >>512
    アドバイスありがとうございます。
    デフォというのは
    $this->output->set_header();で設定するという事ですかね。
    今からマニュアル見てやってみます!
    517 : nobodyさん - 2009/02/13(金) 00:25:52 ID:??? (+34,-30,-121)
    別にviewにfunction置いても良いと思うけど、viewの可読性を落とさないためにhelperがあるんだから、
    使えるならhelper定義すればいい。
    その場限りならviewでも良いんじゃないの?

    $hogeはshow_mage($title, $hoge)って引数に渡さないと駄目だろ。
    functionが呼び出された時点でスコープが変わるんだから。他所のローカル変数は見えない。


    話は変わるけど、誰かODBCの設定database.phpにどう書くか教えてくれない?
    518 : 514 - 2009/02/14(土) 14:38:53 ID:??? (+57,+25,-20)
    >>517
    ありがとう。とりあえずは引数に渡していけました。
    helperも使ってみます。
    519 : nobodyさん - 2009/02/15(日) 14:39:09 ID:??? (+3,-30,-172)
    >>516
    viewファイルで関数定義ってことは、結局クラスメソッド内で関数定義するのと同じ、なのかな

    class Hoge
    {
    function say()
    {
    echo "hoge\n";
    function say_page()
    {
    echo "page\n";
    }
    say_page();
    }
    }

    $c = new Hoge();
    $c->say(); #=> "hoge\npage\n"
    say_page(); #=> "page\n"

    say(); #=> (Fatal error)


    なにこのPHPの仕様。関数の中で関数を定義するとグローバル関数になるのかな?
    まあ名前がかぶったらFatal errorになるだろうけど、気持ち悪いのでできるだけviewで
    ごにょごにょしない方がいいような。

    だれか詳しい人解説してくれないかな・・・
    520 : nobodyさん - 2009/02/15(日) 19:37:53 ID:??? (+96,+29,-72)
    viewがクラスだと思ってないか?ありゃただのスクリプトだ。
    JSPやASPみたいにクラス定義と一体化してるわけじゃない。
    PHPではclassと明示しない限り、上から順番に処理される。関数はクラス内ならメソッド、そうでなきゃグローバル。
    521 : nobodyさん - 2009/02/15(日) 20:22:34 ID:??? (+70,+29,-30)
    >>520
    その「ただのスクリプト」がどう実行されているか、ってのを問題にしてるわけなので。
    脊髄反射いくない。
    522 : nobodyさん - 2009/02/16(月) 00:01:29 ID:??? (+58,+23,-13)
    ユーザガイド見てくるといいと思うよ。
    523 : nobodyさん - 2009/02/16(月) 00:31:53 ID:??? (+10,-30,-287)
    >>522
    ユーザガイドにそんな記述あるの?
    ソース見てみたので一応書いてみる。Kohanaだけどw

    ・標準のviewは CI_Loader::view メソッドで表示処理?
    ・そこから呼び出される _ci_loadメソッドでob_startされた後
      echo eval( ごにょごにょ file_get_contents(~~) )
       もしくは
      include(~~)
    ・んで結果をreturn もしくは $OUT->output()

    この仕組みなら、viewファイル内での関数定義は、CI_Lorder::_ci_loadメソッド内で
    関数定義するのと同等かな。だから、同じテンプレートを2回読み込むと、多分Fatal Error

    どこまでCIの現行バージョンで一緒か知らんし、実際に動かして確認してないので大嘘かも。

    また、PHPで関数内で関数が定義できることやその動作については
    http://ml.php.gr.jp/pipermail/php-users/2005-June/026279.html ← このツリーを
    http://ml.php.gr.jp/pipermail/php-users/2005-June/026322.html ← この辺まで読んで納得。
    PHP5でも仕様はこの当時のままっぽい?

    以上、適当で嘘くさいので、間違ってたら誰か教えて・・・
    524 : nobodyさん - 2009/02/16(月) 13:51:05 ID:??? (+3,-30,-172)
    remapに関して質問です。
    remapした場合関数の引数に当たる部分はuri->segment以外で
    とる方法はないのでしょうか?
    サイトに載っている例では
    function _remap($method)
    {
    if ($method == 'some_method')
    {
    $this->$method();
    }
    else
    {
    $this->default_method();
    }
    }
    となっていて、引数部分がありませんよね。
    現状switchで$methodの内容からsegmentで値引っ張って回してますが、
    もうちょっとスマートな書き方はない物ですかね・・・
    525 : nobodyさん - 2009/02/16(月) 14:47:15 ID:??? (+3,-30,-202)
    興味ないだろうけどオレ流_remap
    function _remap($method)
    {
        if (method_exists($this, $method)) {
            call_user_func_array(array(&$this, $method), array_slice($this->uri->rsegments, 2));
        }
        else if (method_exists($this, $method.'_')) {
            call_user_func_array(array(&$this, $method.'_'), array_slice($this->uri->rsegments, 2));
        }
        else {
            call_user_func_array(array(&$this, 'index'), array_slice($this->uri->rsegments, 1));
        }
    }

    なんでこうなったか忘れたけど、これ書いたとき結構調べたから
    $this->uri->からとってくる以外ないと信じたい。
    526 : nobodyさん - 2009/02/19(木) 14:54:17 ID:??? (+13,-30,+0)
    Kohanaスレないので近縁のこちらで質問させてください。

    ファイルアップロードについてなんだが、
    コントローラ/モデル/ビュー内で$_FILES受け取れないのは仕様?

    ◆ちなみにフォームはこんな感じ
    <form method="post" action="/admin/update/" enctype="multipart/form-data">
    <input type="text" name="name" />
    <input type="file" name="photo" />
    <input type="submit" name="submit" value="アップロード" />
    </form>

    ◆Controller/admin.phpはこんな感じ
    public function update(){
    print_r($_POST); // 正常に出力
    print_r($_FILES); // 空のArrayが出力される
    print_r($_FILES["photo"]); // エラー「Undefined index: photo」
    }

    Kohanaフォーラムだと$_FILESで動いている投稿はあるんだけどなぁ。
    完全手詰まりしてしまった。
    527 : 526 - 2009/02/19(木) 15:42:52 ID:??? (+0,-28,-26)
    うんこでした。
    先ほどペーストしたコードで気づきました。
    enctypeの直前スペースが全角でした。
    うんこでした。

    うんこでした。スレ汚しサーセンorz
    528 : nobodyさん - 2009/02/20(金) 14:07:46 ID:??? (+101,+29,-5)
    ここでうんこ禁止!

    ケツの穴にコルク栓をしておこう^^
    529 : nobodyさん - 2009/02/20(金) 15:01:30 ID:??? (+57,+29,-22)
    あの、「コードイグニッター」って読んでたんですけど・・・
    530 : nobodyさん - 2009/02/20(金) 15:21:31 ID:??? (+70,+29,-5)
    >>528
    「イグニッション!」(点火!)

    シュポーーーン!!
    531 : 528 - 2009/02/22(日) 20:33:01 ID:??? (+57,+29,-4)
    念のため、元ネタはマカロニほうれん荘です^^
    532 : nobodyさん - 2009/02/27(金) 20:37:16 ID:??? (+56,+24,-48)
    これってクッキー以外のセッション使うにはどうすればいいの?
    ZFのセッションとか使うようにできますか?
    533 : nobodyさん - 2009/02/27(金) 20:52:19 ID:??? (+37,-30,-38)
    >>532
    これ
    http://codeigniter.com/wiki/Native_session/
    使うかZendのセッションライブラリをapplication/librariesにおいて使えばおk
    534 : nobodyさん - 2009/02/27(金) 21:05:04 ID:??? (+59,+26,-2)
    >>533
    迅速なレスありがとうございます!助かりました。
    535 : nobodyさん - 2009/03/01(日) 10:39:27 ID:??? (+33,-30,-81)
    モデルクラスの命名規則なんですが、コントローラークラスと同じ名前にするとエラーになりますか?

    Fatal error: Cannot redeclare class Bbs in /usr/local/www/htdocs/.../system/application/models/bbs.php on line 100
    536 : 535 - 2009/03/01(日) 10:40:15 ID:??? (+3,-30,-107)
    (例)掲示板のコントローラークラス

    <?php
    class Bbs extends Controller
    {
     //コンストラクタ
     function Bbs()
     {
      parent::Controller();
      $this->load->model('bbs');//bbsのモデル読み込み
     }
     
     //トップページ
     function index()
     {
      echo "bbs menu";
     }
     
     //タイトル表示
     function title()
     {
      echo $this->bbs->get_title();
     }
    }
    ?>
    537 : 535 - 2009/03/01(日) 10:41:07 ID:??? (+3,-30,-100)
    (例)掲示板のモデルクラス
    <?php
    class Bbs extends Model
    {
     //コンストラクタ
     function Bbs()
     {
      parent::Model();
      $this->load->database();
     }
     
     //タイトル取得
     function get_title()
     {
      $query = $this->db->get('bbs');
      return $query->result_array();
     }
    }
    ?>
    538 : 535 - 2009/03/01(日) 10:46:22 ID:??? (+3,-29,-73)
    コントローラークラスですでに「Bbs」というクラス名を使用していると、
    モデルクラス名として「Bbs」は使えないということでしょうか?
    =Bbsというコントローラーの中で、Bbsというモデルを使うことができない?

    みなさんは、モデルクラス名を付けるとき、どうしてますか?
    =モデルを使うコントローラーのクラス名を重複しないように命名しないとダメなの?

    「Bbs_model」とかだと、なんか長ったらしい><
    539 : 【裂く裸ノ雨】初 - 2009/03/01(日) 10:50:35 ID:fSY3QkVN (+17,+27,+0)
    最近無いのでたてました。
    540 : nobodyさん - 2009/03/01(日) 10:51:05 ID:??? (+43,+20,-12)
    すまん、誤爆したw
    541 : nobodyさん - 2009/03/01(日) 13:57:56 ID:??? (+159,+29,-23)
    CodeIgniterちょっと触ってみた。

    チュートリアルやったんだけど、この後は何をすべきなんだろうか。
    徹底入門って本どう?役に立ちます?
    542 : nobodyさん - 2009/03/01(日) 14:09:29 ID:??? (+70,+29,-20)
    >>541
    掲示板でも作ってみればいいのではないかと。
    って10年前から同じ事言われてる様な気もする
    543 : nobodyさん - 2009/03/01(日) 20:30:49 ID:??? (+55,+27,-19)
    CIもcakeぐらいのフォーラムに成長して欲しいなあ・・・。
    544 : nobodyさん - 2009/03/02(月) 00:25:39 ID:??? (+29,+1,-5)
    CIでシェルスクリプトを使いたいのだが、どうやればいいのでしょうか。
    545 : nobodyさん - 2009/03/02(月) 00:29:17 ID:??? (+80,+30,-152)
    >>541
    最初はオンラインのリファレンスを見てやってたけど、全体を俯瞰するのにページの切り替えが面倒に感じた
    徹底入門はオフラインでどんどん読み進めるので役に立ったよ

    最初慣れるまでリファレンスとして首っ引き
    ActiveRecordクラスのメソッド名や、よく使うヘルパー関数を覚えたら、あとはほとんど見なくてもアプリを作れるようになった

    時給1000円としても3時間分程度のコスト
    CIで生産性アップしたらすぐに元は取れるし、本は読み終わったら売り払えばOK
    最近買った本の中では元が取れた1冊だったと思います
    546 : nobodyさん - 2009/03/02(月) 00:31:56 ID:??? (+57,+29,-33)
    徹底入門で物足りないのは、ログイン認証の作り方
    あと携帯のセッション管理かな
    この二つはネットで検索してフォローしました
    (このスレの情報も役に立ちました^^)
    547 : nobodyさん - 2009/03/02(月) 00:34:43 ID:??? (+105,+19,-44)
    >>541
    ちょっとしたWEBアプリを作っているんですが、一緒に作ってみませんか?
    =2chの過去ログを保存するWEBアプリです。
    DATファイルからHTMLページを作成する機能をこれから作る予定なんですが、良かったらアドバイスとか勉強の材料にでも
    548 : nobodyさん - 2009/03/02(月) 09:59:03 ID:??? (+55,+27,-13)
    1.7の方がバリデーションとか便利そうだけど、日本語化パックがないのか。

    今から始めるなら1.6とどっちがいいですか?
    549 : nobodyさん - 2009/03/02(月) 10:55:51 ID:??? (+1,-26,-63)
    徹底入門みながら、差分情報をリファレンスで確認しつつ1.7やったよ。
    MLの方に 1.7の日本語化パックあったはず。完全じゃなかったとおもうけど
    550 : nobodyさん - 2009/03/02(月) 13:52:32 ID:??? (-1,-29,-9)
    徹底入門のサンプルアプリの動作確認は、1.6でやりました。
    自分のアプリを作るときは1.7でやってます。
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / php スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : - Rapyd + 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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