1 名前:nobodyさん mailto:sage [2007/04/27(金) 23:17:16 ID:???] 公式:www.codeigniter.com/ チュートリアル:codeigniter.com/tutorials/ ユーザガイド日本語訳:ci-user-guide-ja.nought-point-999.net/ 小回りの利くフレームワークの話題をひとつ!
340 名前:nobodyさん mailto:sage [2008/05/08(木) 13:24:21 ID:???] >>339 あったよ。 www.amazon.co.jp/s/ref=nb_ss_gw?__mk_ja_JP=%83J%83%5E%83J%83i&url=search-alias%3Daps&field-keywords=%82%BF%82%A2%82%BF%82%E1%82%F1
341 名前:nobodyさん mailto:sage [2008/05/08(木) 14:27:09 ID:???] >>339-340 この流れは読めた。
342 名前:nobodyさん mailto:sage [2008/05/08(木) 14:32:56 ID:???] >>340 おお! ちいちゃんとぷろぐらまーwwwwww(ノ∀`)
343 名前:nobodyさん mailto:sage [2008/05/09(金) 20:18:30 ID:???] みなさんCIで何つくってるの?会社案内?
344 名前:nobodyさん mailto:sage [2008/05/09(金) 20:40:43 ID:???] >>343 ショッピングカートとかCMSとか。 あちこち独自ライブラリで拡張しまくりだけど。 CIは独自フレームワークを作るためのフレームワークという感じ。
345 名前:nobodyさん mailto:sage [2008/05/09(金) 21:46:00 ID:???] >>344 同じく。 自前でフロントコントローラ作るのが面倒だからプロジェクト毎に特化したCIライブラリ拡張してる。 って使い方するならCIは便利だと思う。 他の人はどうなの?
346 名前:nobodyさん mailto:sage [2008/05/11(日) 07:16:47 ID:???] >>345 同じく。つか、これこそFWだと思う。 今後は他のFWから依存しないライブラリを パクって統合してみる予定。キメラ的な感じ。
347 名前:nobodyさん mailto:sage [2008/05/11(日) 09:16:30 ID:???] aso
348 名前:nobodyさん mailto:sage [2008/05/11(日) 10:11:44 ID:???] ばかだなぁw フレームワーク意味ないじゃないかw
349 名前:nobodyさん mailto:sage [2008/05/11(日) 11:56:34 ID:???] >>348 じゃあ、フレームワークの意味をなくさない程度の 使い方ってものを講釈願おうか
350 名前:nobodyさん mailto:sage [2008/05/11(日) 12:14:16 ID:???] 汎用的な部分は誰が作っても同じような構成になる。 独自のライブラリはなるべく使わない。
351 名前:nobodyさん mailto:sage [2008/05/11(日) 12:27:53 ID:???] >>350 すまん、ちょっとわからんかった。 独自ライブラリを組み込んだものを チーム全員が同じく使うという前提だったのだが、 350はCIをそのまま使えと言っている?
352 名前:nobodyさん [2008/05/12(月) 00:45:07 ID:8tRiGXCa] ポストされた文字を内部エンコードに変換する処理どこに書く?
353 名前:nobodyさん mailto:sage [2008/05/12(月) 00:47:19 ID:???] まだ、EUCやSJISなんか使っているのか? HTMLも内部もUTF-8にきまってるだろ。
354 名前:nobodyさん mailto:sage [2008/05/12(月) 01:08:57 ID:???] だって携帯なんだもん
355 名前:nobodyさん mailto:sage [2008/05/12(月) 14:58:24 ID:???] $this->load->config とかプロパティーでメソッドチェーンするのってキモいな きもいしイレギュラーだから使い方忘れるわ
356 名前:nobodyさん mailto:sage [2008/05/12(月) 14:59:47 ID:???] つーか、loadを名詞に使うなYO!
357 名前:nobodyさん mailto:sage [2008/05/12(月) 21:14:35 ID:???] うん、それは自分もきもいと思った。 慣れればいいだけだが。
358 名前:nobodyさん [2008/05/15(木) 07:22:57 ID:33ekN+Ad] コントローラで、 function index() { echo 'Hello World!' } のように、構文に間違いがあっても、エラーも何も表示されません。 どうしたらエラーの箇所がわかるのでしょうか?
359 名前:nobodyさん mailto:sage [2008/05/15(木) 09:39:21 ID:???] >>358 application/config/config.phpのログの設定のところ見れ。 PHPエラーもログに放り込む設定になってないか?
360 名前:nobodyさん mailto:sage [2008/05/15(木) 18:47:08 ID:???] >>359 $config['log_threshold'] = 0; となっている。ログに放り込む設定にはなっていないと思う。 ちなみに、使っているのは 1.5.4 1.6.x だと index.php
361 名前:nobodyさん mailto:sage [2008/05/15(木) 18:48:27 ID:???] (ごめん 途中で書き込んでしまった) 1.6.x だと index.php をブラウザで見ても何も表示されないけど、 Apache か PHP の設定が何かおかしいのかなぁ?
362 名前:nobodyさん [2008/05/15(木) 20:11:20 ID:33ekN+Ad] 1.5.4 のソースを読むと、 set_error_handler('_exception_handler'); でエラーハンドラを設定しているようですが、 function _exception_handler($severity, $message, $filepath, $line) は値を返さず return しています。 PHP のマニュアルには 5.2.0 では「エラーハンドラは必ず FALSE を返さなければなりません」 と書いてあります。 ci 1.5.4 は PHP 5.2.0 以上には対応していないってことでしょうか?
363 名前:358 mailto:sage [2008/05/15(木) 20:43:44 ID:???] 解決しました 構文エラーがあってもエラーメッセージが表示されなかったのは php.ini で display_errors = Off としているからでした。 お騒がせして&ci のエラーハンドリングを疑って大変申し訳ありませんでした m(_ _)m
364 名前:nobodyさん mailto:sage [2008/05/16(金) 13:43:36 ID:???] フォームヘルパー使うとCSSは凝ったこと出来なくなるし、javascriptとの絡ませ方を間違いそうだし、 表示系はviewに手打ちが基本?
365 名前:nobodyさん mailto:sage [2008/05/16(金) 13:49:39 ID:???] ヘルパをラッパーしたらいいじゃん
366 名前:nobodyさん mailto:sage [2008/05/16(金) 15:15:12 ID:???] CIのviewは使って無いなぁ。 Flexy突っ込んで使ってる。
367 名前:nobodyさん mailto:sage [2008/05/16(金) 18:28:03 ID:???] つまりまともに段組したければ、view側にヘルパーのコードを書くことになる。 view側では文字数減るが、コントローラ側と合わせれば同程度かむしろ増える。 他の人が変数自体や変数に入れたnameやid確認したければ、わざわざコントローラのファイル見に行くことになる。 結局ふつうのフォームは生htmlでviewに書くことにするからメンテナンス請け負った人は客や上司の前で批判しないように。
368 名前:nobodyさん mailto:sage [2008/05/18(日) 03:29:10 ID:???] セキュリティー的に、www掘ってそこにindex.php置くべきだよなぁ すべてのphpファイルの前に <?php if (!defined('BASEPATH')) exit('No direct script access allowed'); なんて書くよりその方がずっと簡単でスマートなのにエリスはあほなの?
369 名前:nobodyさん mailto:sage [2008/05/18(日) 08:20:55 ID:???] そうしなくても使えるように配慮したからだろJK
370 名前:nobodyさん mailto:sage [2008/05/18(日) 10:36:08 ID:???] >>368 index.phpを1行いじれば(つか「.」1個打つだけw)BASEPATHをドキュメントルート外に 置く使い方ができるんだから、そうすればいいだけの話。
371 名前:nobodyさん mailto:sage [2008/05/18(日) 15:03:34 ID:???] しょぼいレン鯖でもドキュメントルート外にファイル置けるだろ 何のためにそんな配慮したのか意味不明JK
372 名前:nobodyさん mailto:sage [2008/05/18(日) 15:10:43 ID:???] >意味不明JK お前の文章が意味不明
373 名前:nobodyさん mailto:sage [2008/05/18(日) 18:09:00 ID:???] じゃあドキュメントルート外にファイル置けないレンタルサーバ言って見ろよッ! JK!
374 名前:nobodyさん mailto:sage [2008/05/18(日) 19:45:51 ID:???] 人は死ぬ 必ず死ぬ 絶対死ぬ 死は避けられない 私は死ぬ 必ず死ぬ 絶対死ぬ 死は避けられない あなたは死ぬ 必ず死ぬ 絶対死ぬ 死は避けられない 死を忘れていても 死をごまかしていても 今日はまだ死なないだろうと思っていても 死から逃れることは誰もできない 全ては無常 過ぎた時間は終わってしまえば瞬間だった まだ遠い先の未来のことだと思っている死も確実にやって来る memento mori - 汝の死の瞬間を迎えるときを想え
375 名前:nobodyさん mailto:sage [2008/05/18(日) 21:12:02 ID:???] >>373 ロリポップ
376 名前:nobodyさん mailto:sage [2008/05/19(月) 02:14:56 ID:???] ロリポしょぼっ さすが女子供用のレン鯖だな
377 名前:nobodyさん mailto:sage [2008/05/21(水) 06:09:08 ID:???] 今時Layoutつかえねーのかこれ・・・ 呆れ果てたぜ!
378 名前:nobodyさん mailto:sage [2008/05/26(月) 10:05:45 ID:???] >>377 Layoutって何ですか? 他のフレームワークにはそういう便利な機能がついているんですか?
379 名前:nobodyさん mailto:sage [2008/05/27(火) 18:50:32 ID:???] 複数の画面で共通した 大枠のテンプレートが使える機能だよ 最近のフレームワークじゃ常識になってる
380 名前:nobodyさん mailto:sage [2008/05/28(水) 00:33:16 ID:???] >>379 Flexy組み込んで実装してる。 Codeigniterにはいらなくね? 俺は余計な機能ゴタゴタつけないで、常にシンプルに保って欲しい。 ライブラリとかプラグイン、ヘルパがあるんだし、欲しい物は自分で追加できた方が嬉しい。
381 名前:nobodyさん mailto:sage [2008/06/04(水) 19:01:53 ID:???] GETでルーティングする方法ってないんかな。
382 名前:nobodyさん [2008/06/05(木) 01:46:11 ID:R522EZcR] >>381 userguide.cilab.info/general/urls.html クエリ文字列の有効化 URLに次のようなクエリ文字列を使用したい場面もあると思います: index.php?c=products&m=view&id=345 CodeIgniter ではオプションでこのようなことにも対応しています。この機能は、application/config.php ファイルで有効にすることができます。 ↑こういうこと?
383 名前:nobodyさん mailto:sage [2008/06/05(木) 09:41:07 ID:???] >>382 ばっちしこれです。タンクス。
384 名前:nobodyさん mailto:sage [2008/06/05(木) 11:55:45 ID:???] URIルーティングでもGETには変わりないから なんのこっちゃと思った
385 名前:nobodyさん mailto:sage [2008/06/06(金) 02:27:23 ID:???] このスレを見ている人はこんなスレも見ています。(ver 0.20) ドラクエの住人がルー大柴だったら [FF・ドラクエ] 昔疎遠になった幼馴染が引っ越してきた [不倫・浮気] エイチ・エス・フューチャーズ [先物] POINT-BOX ポイントボックス 8 [ポイント・マイル] 好きなギャルゲーをつまらなさそうに説明づるスレ [ギャルゲー] ci使いって一体・・・
386 名前:nobodyさん mailto:sage [2008/06/06(金) 05:21:57 ID:???] ふと思ったが、URIクエリパラメータを「GET」っていうのは、PHPer以外にも通じる用語なのかな? # $_GET ならともかく
387 名前:nobodyさん mailto:sage [2008/06/07(土) 01:05:47 ID:???] >>386 formのmethod属性で、POST、GETというんだから、GETは他言語でもGETなんでないの。
388 名前:nobodyさん mailto:sage [2008/06/07(土) 01:08:01 ID:???] >>386 リクエストメソッドって知ってる?
389 名前:nobodyさん mailto:sage [2008/06/07(土) 01:19:24 ID:???] >>388 GET / HTTP/1.1 HOST: www.example.com みたいな?一応知ってますよ、と >>387 のHTMLのform要素としてのGETパラメータ、っていう意味でなら通じると。納得。
390 名前:nobodyさん [2008/06/08(日) 13:11:00 ID:oe9fgjbi] >>386 「GET」云々はプログラム言語の仕様の話ではなくて、「HTTP」の仕様・仕組みの話だから、PHPとは関係なく説明に使えますね^^ docs.sun.com/source/816-5668-10/esaphttp.htm#1004513 HyperText Transfer Protocol (HTTP) の基本を簡単に紹介します。 ●クライアントからサーバへのリクエストには、次の情報が含まれます。 ・リクエスト メソッド ・リクエスト ヘッダ ・リクエスト データ ●リクエスト メソッド クライアントは多くのメソッドを使って情報を要求することができます。 一般的には次の方法が使われます。 ・GET 特定のドキュメントを要求します。 ・HEAD ドキュメントのヘッダ情報だけを要求します。 ・POST サーバの、クライアントからのデータ受信を要求します。CGI プログラムのフォーム入力などです。 ・PUT サーバのドキュメントの内容を、クライアントからのデータに置換します。
391 名前:nobodyさん [2008/06/08(日) 13:13:24 ID:oe9fgjbi] www.studyinghttp.net/method#HTTP1.1_Method HTTP/1.1 メソッド GET HEAD POST PUT DELETE OPTIONS TRACE CONNECT PATCH LINK, UNLINK
392 名前:nobodyさん mailto:sage [2008/06/08(日) 14:06:34 ID:???] そうゆうことです
393 名前:nobodyさん mailto:sage [2008/06/08(日) 14:51:40 ID:???] どういうこと?
394 名前:nobodyさん mailto:sage [2008/06/09(月) 00:01:07 ID:???] >>393 クライアント(自分のマシン)が、サーバー(WEBサーバー)に対して、「このデータを送ってくれ!」と呼びかける方法がいろいろ用意されている。 その中の一つとして、GETやPOST等の方法が用意されている。 ということだよ^^ 「HTTP」でGoogle検索すると詳しく解説しているページが、たくさん見つかるよ☆
395 名前:nobodyさん mailto:sage [2008/06/09(月) 06:12:49 ID:???] ?hoge=poge とか付けなくても普通にページ呼び出してたらそれすなわちGETなのだ
396 名前:nobodyさん mailto:sage [2008/06/10(火) 05:51:57 ID:???] ci徹底入門が発売されたもよん 買った人どう? まぁ本読むまでもない程シンプルなのがciだと思うが・・
397 名前:nobodyさん mailto:sage [2008/06/11(水) 17:14:01 ID:???] mixiから転載。 -- bossatama --- ■社名 株式会社 音生(ネオ) ■募集人材と雇用形態 ・事務(女性) ・PHPプログラマ アルバイト(男女) ■想定勤務時間 週3日以上希望 残業等なし ■想定勤務地 名古屋市中区金山 ■担当してもらう予定の業務 ・事務(女性) ・PHPフレームワークを利用したWebアプリケーションの開発 ■報酬 自給1000円〜2000円 実力に応じて相談させてください。 ■希望人材(スキル・年齢・住居地など) PHPの初心者歓迎。教育できます。男女学生大歓迎、転職やリターンもOK。 事務をやりながら、デザイン(html)やプログラムを勉強する方もOKです。 ■募集期限 2008年7月終わり ■連絡先 「アルバイト希望」として、連絡先をmixiメールにてお願いします。 ■その他(好きなだけアピールしてください) AUの公式サイト「バンドナビ」を運営。音楽大好き! band-navi.com/ 日本CodeIgniterユーザ会の主催会社 codeigniter.jp/ -- 会社が主催してるらしい
398 名前:nobodyさん mailto:sage [2008/06/11(水) 20:16:55 ID:???] 営利企業が勝手にユーザ会とか名乗るのやめて欲しい
399 名前:nobodyさん mailto:sage [2008/06/11(水) 21:54:47 ID:???] >>396 615ページぐらいあって、やたらでかくて高かった。3800円とか。 開発環境の構築の仕方とかが最初に書いてあって(Eclipse/PDT)、 今までフレームワーク使うまでも無い小さい案件ぐらいしかやったことねぇよ、って言う人むけな感じ。 ●サンプルコードも、 ・コンタクトフォームを作る ・モバイル対応簡易掲示板を作る ・簡易ショッピングサイトを作る 程度に収まってる。 CIは、Web上に日本語のマニュアル転がってるし、 勘のいい人とか、適当にいろいろフレームワーク渡り歩いてた人とかは必要ないかも。 って、数ページペラペラめくって思った。 そんなに小技とか、そういうのは乗ってない雰囲気でございます。
400 名前:nobodyさん [2008/06/12(木) 13:55:53 ID:5LtH7vFx] 初心者PG向けに良いFWだね。 他のFWとは対象者がバッティングしないと。
401 名前:nobodyさん mailto:sage [2008/06/16(月) 03:40:01 ID:???] >>396 PHP初心者だけど、結構ありがたい本。 環境構築からデバッグ方法、フレームワークの基礎的な概念も説明してるし。 リファレンス部も、サンプルコードが充実してるのがありがたい。 迷った時には、この本開けば即解決になる確率が高い。 フレームワークとかの、言語以外の範囲の入門書って、イマイチそういう 迷ったときに解決する為の「当たり」ページを引く確率低いってイメージ あるから、俺的にはこの本はお勧めできる。 ただ、CI内部のコードとかバリバリ読めて、ネット上からさくさく自分の 探してる情報が引き出せて、CIに機能が無ければ自分でガリガリ書くって いうようなパワーユーザは、ものたりないって言うかもしれないね。
402 名前:nobodyさん mailto:sage [2008/06/16(月) 04:05:37 ID:???] なんか宣伝くせーな
403 名前:nobodyさん [2008/06/16(月) 10:32:47 ID:uqAO2CKu] 昨日本屋で見てきました。 パラパラとしか見てないけど、即買い!という判断には至らなかった。 自分が本を買う基準の一つとして、購入後の利用頻度を考慮しますが、2〜3回読んだら終わりかな?と思ったので。 >>401 フレームワーク自体に慣れてない人、初心者にとっては役立つ =CIのマニュアル代わりとして使う用途なら、紙ベースなので便利 と思いました。
404 名前:nobodyさん mailto:sage [2008/06/17(火) 20:04:27 ID:???] 他のFW本よりもわかりやすかったよ。 CIそのものが簡単ということなのかな。
405 名前:nobodyさん mailto:sage [2008/06/24(火) 05:50:32 ID:???] 404エラーページの取り回しダサくね? 標準の処理と同じコンテクストで処理するのが自然なんだから エラー用のクラス名とメソッド名だけ指定するようにするべきだろJK しかもビューチフルにハックもしにくいし 所詮ハゲが書いたFWか・・
406 名前:nobodyさん mailto:sage [2008/06/26(木) 00:50:52 ID:???] と、ハックに挫折したハゲが申しております。
407 名前:nobodyさん mailto:sage [2008/06/26(木) 00:55:50 ID:???] config周辺もひどい アメ公の美意識の低さは異常
408 名前:nobodyさん mailto:sage [2008/07/01(火) 04:00:36 ID:???] CIでXoopsモジュールとか作った人いたりする?
409 名前:nobodyさん mailto:sage [2008/07/02(水) 18:00:54 ID:???] Fatal error: Call to a member function get() on a non-object in C:\xampp\htdocs\ci\system\application\controllers\blog.php on line 15 DBオブジェクトが取れてないようなんだけど、取れてない部分のエラーが出てこないのはなんで?
410 名前:nobodyさん mailto:sage [2008/07/02(水) 18:12:41 ID:???] ライブラリが登録されてなかった。 でもエラーが出ないのはうんこだろ。
411 名前:nobodyさん [2008/07/03(木) 10:15:29 ID:XZ5SMLTk] AppControllerとかAppModelとかおきたい場合って どうすればいいんでしょうか?
412 名前:nobodyさん [2008/07/03(木) 17:29:46 ID:EmmaV8CT] 管理者用の画面を作るときって どうやってる? controller/admin 掘って そこにコントローラ置いて あとは admin にルーティングすればいいのかな? ログイン認証なんかのコントローラとか どうやってわけるのがいいんだろう…
413 名前:nobodyさん mailto:sage [2008/07/03(木) 17:40:04 ID:???] >>412 ぶっちゃけ、どんなURLにしたいかで変わる様な気がする 別ドメインがよければ、Apacheの設定も絡むし。 一般的なのはどんな感じなんだろうねえ
414 名前:412 mailto:sage [2008/07/03(木) 17:54:55 ID:???] >>413 ありがとう そだね とりあえずは controller/admin/ にディレクトリ掘って そこに置くことにした あと 管理者関連のコントローラだけ 共通の認証チェック処理いれたいんだけど その辺のやり方がわからない 前にCakePHPさわったときは beforeFilter なんかで コントローラ共通の処理入れられたんだけど CIは 自分でControllerクラス継承して 作らないとだめなのかな? 管理ページ周りの処理で 参考になるとこあったら教えてください…
415 名前:412 mailto:sage [2008/07/03(木) 18:02:00 ID:???] Controllerクラス継承して作る場合は >>411 の言ってることと同じだね 一応 コアクラスの継承は system/application/library/ に Controllerクラスを継承したMY_Controller.php とか作ればいいみたいだよ ログイン認証の共通処理も そうやってAppController 作ればいいんかな… その辺りの情報がないから どうやるのがいいのか いまいちわからん
416 名前:nobodyさん mailto:sage [2008/07/03(木) 18:06:26 ID:???] >>414 CIさわらずにKohana触ってる邪道な俺だけど、俺も知りたい 便乗w 俺は、libraries の中にBaseController, UserController, AdminController って作っちゃったな・・・ 誰か、筋の良いやり方を教えて
417 名前:412 mailto:sage [2008/07/03(木) 18:12:02 ID:???] >>415 ちょいウソあったw AppControllerじゃなくて MY_Controller だね /system/application/library/MY_Controller.php class MY_Controller extends Controller { function MY_Controller() { parent::Controller(); } } こんな感じ。 ログインの共通処理も ここでやろうかと思ったんだけど それでいいのかがわからん… >>416 みたいに 種類ごとにクラス作ったほうがいい気もするし…
418 名前:412 mailto:sage [2008/07/03(木) 18:52:48 ID:???] >>417 の方法でやってるんだが /system/application/libraries/MY_Controller.php のようなの作れば コアクラスは自動で置き換わるらしいんだが 置き換わらないな コントローラ側で class bbs extends MY_Controller { } みたいに MY_ つけてやらないとダメ CIのルールだとデフォでMY_付けることになってるけど これじゃ意味ないじゃん バグ?
419 名前:nobodyさん mailto:sage [2008/07/03(木) 18:57:59 ID:???] [/system/application/libraries/MY_Controller.php] class TEST_Controller extends Controller { } [/system/application/controllers/test.php] class Bbs extends TEST_Controller { } にしてもいけちゃう class Bbs extends Controller { } だと TEST_Controller が継承されない (ルール通りにクラス名を MY_Controller にしても場合も同じ) コアクラス、置き換わってない… バグくさいね orz
420 名前:412 mailto:sage [2008/07/03(木) 19:38:23 ID:???] ぼけてた 釣ってくる… でも「コアクラスを拡張する場合のクラス名には MY_ を付ける」 っていう ルールは意味がないね codeigniter.jp/user_guide_ja/general/core_classes.html ファイルは MY_ 付けないと読み込んでくれないみたいだけど、 クラス名は別に MY_ 付ける必要ないよね? なんでこんなこと書いてるんだろう
421 名前:nobodyさん mailto:sage [2008/07/03(木) 20:15:07 ID:???] 英語版にはちゃんとした事書いてたりするけ?
422 名前:411 [2008/07/03(木) 20:23:33 ID:XZ5SMLTk] 事故解決してたんだけどありがとう。 ただAppModelは相変わらずわかりません。 どのタイミングでロードすればええんですか? Hook系もだめぽでした。
423 名前:412 mailto:sage [2008/07/03(木) 22:43:11 ID:???] >>422 >>419-420 の方法じゃだめなの? クラス名 MY_ つけなくてもいけるっぽいから AppControllerにしとけばいいんじゃ よくわからん ルールだなあ おれはてっきり Controller そのものを置き換えてくれるとおもったんだが ライブラリとかヘルパはそうだよね
424 名前:nobodyさん mailto:sage [2008/07/04(金) 15:09:16 ID:???] >>422 コントローラはMY_Controllerをextendsして書いてるが、 モデルは仕方ないので各モデルの冒頭で <?php require_once(APPPATH."libraries/MY_Model.php"); class Hoge_model extends MY_Model
425 名前:nobodyさん mailto:sage [2008/07/14(月) 11:55:08 ID:???] $this->db->insert() するときに, created_at とか updated_at というカラムに current_timestamp を指定したいんだけど、どうやったらいいの? $array = array('name'=>'Foo', 'created_at'=>'current_timestamp'); として insert() してみたけど、current_timestamp にならず 0000-00-00 00:00:00 になった。 ちなみにMySQL5.0
426 名前:nobodyさん mailto:sage [2008/07/14(月) 12:05:24 ID:???] >>425 Database に、escapeしないでsetする方法ってあったっけ? それがsetメソッドなら、 $db->エスケープしないset('create_at', '式'); $db->insert('テーブル名') でいけるような気がする。 以上想像。なければ、Databaseを拡張する必要があるかも? 俺もこの辺知りたい。ソース嫁って感じだけど
427 名前:nobodyさん mailto:sage [2008/07/14(月) 12:12:17 ID:???] NOW()とかも文字列として扱っちゃうから date('Y-m-d H:i:s') にするしかないと思う オレは function now() { return date('Y-m-d H:i:s'); } っていう関数を作ってある
428 名前:nobodyさん mailto:sage [2008/07/14(月) 19:00:27 ID:???] >>426-427 さんくすです。 できないみたいなので、 fuction current_timestamp() { return date('Y-m-d H:i:s'); } を使うことにしました。 でもこれだと、application server と database server が別だと 時刻を必ず揃えておく必要がありますね。
429 名前:nobodyさん mailto:sage [2008/07/14(月) 19:12:37 ID:???] >>428 サーバの管理がきっちり出来ていれば、どんなサーバも1秒と違わないはずなので、時刻で よっぽどシビアなソートやチェックをしていない限り、それは大丈夫かと。 また、原則からいうなら元々どちらかに合わせるべきなので、DBの関数が使えない時点で application側の時刻のみを使うのが必然となるかな。 サーバ間の時刻あわせとは、微妙に話が違うような。
430 名前:nobodyさん mailto:sage [2008/07/14(月) 19:47:05 ID:???] >>426-428 date_helperのunix_to_human じゃダメなのか? unix_to_human(time(),TRUE,'eu');
431 名前:nobodyさん mailto:sage [2008/07/15(火) 06:26:58 ID:???] うちでは、まず application/helpers/database_helper.php として↓を用意して class SafeMarker { private $_str; public function __construct($str) { $this->_str = $str; } public function __toString() { return $this->_str; } } function mark_as_safe($str) { return new SafeMarker($str); } モデルの中でこんな感じで使ってますよ $this->load->helper('database'); $this->db->set('foo', $bar); $this->db->set('created_at', mark_as_safe('NOW()')); $this->db->insert('mytable'); CI_DB_driver#escape を読むとわかるけど、gettype で 'string' でも 'boolean' でも NULL でもない値はスルーしてくれるので、オブジェクトでラップすると通る。 ただし __toString はPHP5からかな。 一種のhackなので、NOW()みたいな安全だとわかっているものにしか使いませんが。
432 名前:nobodyさん mailto:sage [2008/07/15(火) 07:42:14 ID:???] >>431 なんちゅうか、バッドノウハウの香りがw > gettype で 'string' でも 'boolean' でもNULL でもない値はスルーしてくれる っていう実装自体も、それに依存してるっていうのも、なんだかなあw オブジェクトを渡されて、上記みたいにすることも前提にしてるのかな?>CI (それなら、素直にescapeを回避するset系メソッドをつければいいのではと)
433 名前:431 mailto:sage [2008/07/15(火) 12:59:01 ID:???] >>432 どうみてもBKです。本当に(ry CI内部の実装依存だからCIをバージョンアップすると動かなくなるかも。 個人的には、gettypeを見て判定、の部分はとりたてておかしなコードでは ないので、マイナーバージョンアップであれば大丈夫だろうという甘い期待w 最悪、mark_as_safe で grep して置き換えれば、なんとかなるだろうとかw 素人にも玄人にもオヌヌメできない。\(^o^)/
434 名前:431 mailto:sage [2008/07/15(火) 13:07:49 ID:???] ってよくみたら set($key, $value = '', $escape = TRUE) って 第三引数があるじゃねーかw $this->db->set('created_at', 'NOW()', FALSE); で多分いけるね・・・ orz
435 名前:nobodyさん mailto:sage [2008/07/15(火) 13:10:36 ID:???] >>434 でもそれだと $this->db->insert('tablename', array('created_at'=>'NOW()')); とかができないよね。 431の方法のほうが個人的に好み。
436 名前:nobodyさん mailto:sage [2008/07/15(火) 13:15:25 ID:???] そういうの考えるのが面倒くさかったので、デフォで$this->db->insert($tablename, $valuearray);時は created_atに作成日時をつっこみ、$this->db->update($tablename, $valuearray);時はupdated_atに 更新日時を突っ込むようにCI_DBを変更して使ってる。 バッドノウハウなのは百も承知だが、symfonyから流れてきた人にはこれが手放せないのよorz
437 名前:nobodyさん mailto:sage [2008/07/15(火) 17:00:08 ID:???] >>436 それはDBのNOW()やCURRENT_TIMESTAMP()を使うの? それともPHPのdate()を使うの? 前者ならまねしたいなあ
438 名前:nobodyさん mailto:sage [2008/08/02(土) 09:47:59 ID:???] いつの間にか1.5から1.6になってる。 なんかかわったの?
439 名前:nobodyさん [2008/08/03(日) 18:45:02 ID:znW3bDml] あれ、$this->dbがなくなってね?
440 名前:nobodyさん mailto:sage [2008/08/03(日) 19:04:30 ID:???] kantigaidatta