1 名前:nobodyさん mailto:age [2008/01/24(木) 21:26:07 ID:???] www.symfony-project.org/ コードスニペット www.symfony-project.org/snippets/tag プラグイン trac.symfony-project.com/wiki/SymfonyPlugins どうぞ つ
582 名前:nobodyさん [2009/01/07(水) 11:59:39 ID:E9TXficj] >>580 エンジニアに英語は必須でしょ。勉強しようよ。 そういう言う俺は公文の中学生英文法を勉強してるへたれだけど。
583 名前:nobodyさん [2009/01/08(木) 10:30:11 ID:RWe/YoFS] actionでテーブル名からそのOMクラス名を取得するにはどうすればいいですか?
584 名前:583 [2009/01/08(木) 14:04:48 ID:RWe/YoFS] admin generatorをカスタマイズしてたんですけど actionでやらないで、generatorでやってしまいました。 actionだと Propel::getDatabaseMap($connectionName); でDatabaseMapを取得して、どうにかするのかな? 試してないけど。
585 名前:nobodyさん mailto:sage [2009/01/12(月) 05:16:23 ID:???] doctrine試してるんですけど doctrine-build-all-reload すると、データベースを一回ドロップして作りなそうじゃないですか? その時、encodingの値を無視してDEFAULT CHARACTER SET latin1で作っちゃうんですけど 設定でどうにかなりますか? doctrine-build-all-reloadを使わないとか、mysqlの設定をいじってデフォルト値を変えちゃえばどうにかなるとは思うのですが symfony側でどうにかならないかなあ。
586 名前:585 [2009/01/12(月) 05:17:13 ID:JXhDeiPx] ああ、専ブラがまたデフォルト下げ設定になってました。 すいません。
587 名前:nobodyさん [2009/01/17(土) 00:20:55 ID:LLHZVk4w] schema.ymlでフィールドの選択可能な値一覧を指定する事って出来ますか? MySQLのENUM型みたいなの。 イメージとしてはこんな感じです。 propel: customer: id: ~ sex: [male, female]
588 名前:nobodyさん mailto:sage [2009/01/17(土) 02:22:45 ID:???] ORMで定義するんじゃないの?
589 名前:587 [2009/01/18(日) 05:03:02 ID:cj4gRIwu] >>588 ちょっとよく分からなかったので、とりあえず保留・・・ 別テーブル作ってmale, femaleの2つのレコードを作って対処しました。 別の質問なんですけど、generator.yml に password, password2 という 2つのフィールドを定義しています。 modules/user/validate/edit.yml というバリデータを用意して2つのフィールド ともにrequiredにして、sfCompareValidatorで2つのパスワードが一致しているか チェックしてます。 それ自体はとりあえず動作したのですが、やりたい事はユーザーの新規作成 の時はパスワード入力は必須にして、更新の場合は値の入力は任意で、 値を入力した場合のみ2つが一致するかチェックさせたいです。 ゴリゴリ書けば出来ると思いますが、一番楽な方法ってどんなんですか?
590 名前:nobodyさん mailto:sage [2009/01/18(日) 11:39:22 ID:???] シコシコ書くしかないね。
591 名前:587 mailto:sage [2009/01/18(日) 11:59:51 ID:???] >>590 そっかー。残念ですがシコシコやります。 ありがとうございました。
592 名前:nobodyさん mailto:sage [2009/01/22(木) 16:52:06 ID:???] sfForm を誰か簡単に説明してください。 これでフォーム周りがよくなったの?
593 名前:nobodyさん mailto:age [2009/01/22(木) 22:02:55 ID:???] 悪くなった。
594 名前:nobodyさん mailto:sage [2009/01/23(金) 23:49:18 ID:???] >>592 うん
595 名前:nobodyさん [2009/01/24(土) 21:08:57 ID:BN/V3l3x] blogを作るチュートリアルをやってます。 postとcommentという2つのモジュールがあるやつです。 postのedit画面でcommentの一覧表示をさせてますが、 これと同じ事をadmin generator(? generator.yml を使うやつ)で できませんかね。
596 名前:nobodyさん mailto:sage [2009/01/26(月) 01:23:09 ID:???] >>595 できるよ まぁできるってだけで、それが効率いいかどうかは微妙
597 名前:nobodyさん mailto:sage [2009/01/29(木) 00:34:41 ID:???] >>596 どういう方法?
598 名前:nobodyさん [2009/01/29(木) 21:43:36 ID:rSa/9joZ] 1.0.19の調査中ですが質問させて下さい。 Apacheにて、BASIC認証・SSL・nonSSL の3つのディレクトリで構成したいのですが、 symfonyに適合させるためには、 webディレクトリ下にディレクトリを作成して、 フロントコントローラを移動するのが ベストでしょうか?
599 名前:nobodyさん [2009/01/29(木) 21:44:00 ID:rSa/9joZ] あげてもうた、ごめんなさい
600 名前:nobodyさん mailto:sage [2009/01/30(金) 14:23:56 ID:???] >BASIC認証・SSL・nonSSL ここがよくわからん BASIC認証+SSL SSL NonSSL の三本立て? どっちにしろSymfonyとは関係なさげ
601 名前:nobodyさん mailto:sage [2009/01/30(金) 21:45:58 ID:???] >>600 さん 3本立ての3システムです。 これは、1プロジェクトにしたいです。 Apacheは、ディレクトリ単位ででした 設定(.htaccess等)できないので。 symfonyのwebディレクトリも3ついると 思っています。 間違いがありましたらご指摘よろしくお願いします。 なんか勘違いしてる余寒・・・
602 名前:601 mailto:sage [2009/01/30(金) 21:47:29 ID:???] ×Apacheは、ディレクトリ単位ででした ○Apacheは、ディレクトリ単位でしか
603 名前:nobodyさん mailto:sage [2009/01/31(土) 08:04:46 ID:???] 公開フォルダを3つに分ければ簡単に出来る。 でも同一コンテンツでセキュリティーレベルが違うって考えが おかしい気がする。
604 名前:601 mailto:sage [2009/01/31(土) 11:44:52 ID:???] >>603 さん ご返答ありがとうございます。 具体的には、>>598 のやり方で、 よいという事でしょうか? 同一コンテンツではありません。 事例的には、Amazonnとか 商品サイトと、商品注文サイト、会員サイト の3つでセキュリティレベル違うのと同じです。
605 名前:nobodyさん mailto:age [2009/02/02(月) 18:51:41 ID:???] その方法だね。 ただ、action内で識別するロジックを忘れるな。
606 名前:nobodyさん [2009/02/03(火) 18:04:37 ID:7F1r2xmv] sfPropelPagerで検索結果のページをページングする時 formから来た?hoge=huga......................といっぱいついてくるクエリーはどうしてます? セッションに保存するのも微妙だし テンプレートで$_SERVER['QUERY_STRING']か取得してごにょごにょするのもどうかなと。 sfPropelPager自体には無さそうですよね? sfPropelPagerを拡張してmodel側で$_SERVER['QUERY_STRING']をどうにかする感じでしょうか?
607 名前:606 [2009/02/03(火) 18:40:10 ID:7F1r2xmv] あ、link_toのoptionにquery_stringっていうのがありますね。 この辺をうまく使う感じでしょうか?
608 名前:nobodyさん mailto:sage [2009/02/04(水) 14:13:43 ID:???] Criteriaだめだな。 簡単なクエリなら作れるけどANDとかORが複雑に絡み合ったりするとお手上げ。 なにがしたいのか意味がわからない。
609 名前:nobodyさん mailto:sage [2009/02/04(水) 15:27:40 ID:???] オブジェクト指向で考えろ
610 名前:608 mailto:sage [2009/02/04(水) 20:32:27 ID:???] >>609 例えば SELECT t_job.* FROM t_job WHERE (t_job.ID IN ( SELECT v_rel_job_area.JOB_ID FROM v_rel_job_area WHERE v_rel_job_area.DISTRICT_ID = 1 )) AND (t_job.ID IN ( SELECT t_rel_job_category.JOB_ID FROM t_rel_job_category WHERE t_rel_job_category.CATEGORY_ID IN (1, 5, 6) )) AND ( (t_job.STATUS IN (1, 2)) OR (t_job.STATUS = 0 AND t_job.ID IN ( SELECT t_rel_job_publish.JOB_ID FROM t_rel_job_publish WHERE t_rel_job_publish.PUBLISH_ID = 1)) ) こんなクエリ作れなくない? 作れるのか? なんかCriteria::CUSTOMを同じかカラム名でaddすると上書かれて前のクエリ消えるし addAndですると括弧が変なところについておかしなことになるし 公式見ても複雑なものは生SQLで、みないな事書いてない?
611 名前:nobodyさん mailto:sage [2009/02/05(木) 14:30:33 ID:???] アクションでアサインされた全ての変数を テンプレート内で、取得したいときって $sf_context->getActionStack()->getLastEntry()->getActionInstance()->getVarHolder()->getAll() ってわざわざ書かないとだめ?
612 名前:nobodyさん mailto:sage [2009/02/05(木) 14:38:32 ID:???] >>610 Criteriaがダメなんじゃなくて、そもそもその文抽象化されてないから。 まぁ俺はサブクエリビルドクラス使って対処してるけど。
613 名前:nobodyさん mailto:sage [2009/02/06(金) 21:04:13 ID:???] >>610 上書きされる件はCriterion使えばできない?
614 名前:nobodyさん mailto:sage [2009/02/07(土) 02:38:32 ID:???] >>613 使い方おしえてやれよ…
615 名前:nobodyさん [2009/02/10(火) 10:59:01 ID:HED7VAZr] symfony test:unit で、ファイル名まで指定して単体で実行すると問題ないが、まとめて単体テストを実行するときに255か返ってくる、 とい問題が起きました。どこでエラーになっているかを表示、あるいはログに記録する方法はあるでしょうか?
616 名前:nobodyさん mailto:sage [2009/02/10(火) 20:29:08 ID:???] 訳あってsymfony1.0使っているんだけど、 sfValidatorManagerの拡張クラスを作って、 それをValidate実行時に使わせることってできる?
617 名前:nobodyさん mailto:sage [2009/02/11(水) 20:07:05 ID:???] できるよ
618 名前:nobodyさん mailto:sage [2009/02/12(木) 13:08:50 ID:???] ほほー。どこになんて書けばいい?
619 名前:nobodyさん mailto:sage [2009/02/12(木) 17:37:15 ID:???] 自分で考えろ
620 名前:nobodyさん mailto:sage [2009/02/12(木) 22:36:13 ID:???] どこに何を書くも糞も無いだろう。必要なクラス持ってきて1.1↑と同じように書くだけ
621 名前:nobodyさん mailto:sage [2009/02/12(木) 23:54:55 ID:???] 1.0、1.1、1.2みんなはどれ使ってるの? なぜか1.0のメンテナンス終了が2010年の1月で1.2のメンテナンス終了が2009年の11月なのでどちらで作っていくべきか迷ってるんですが。。。どれが良いと思いますか?
622 名前:nobodyさん mailto:sage [2009/02/13(金) 02:57:30 ID:???] >>621 最近始めたので、1.2使ってる なので、どれがいいかは分からない 1.2でルーティング周りのクラスが追加されていて、特にsfRouteCollectionを使用すると、より簡潔にrouting.ymlを記述出来るようなので、 これから始めるのなら、1.2の方がいいんじゃないの?
623 名前:nobodyさん mailto:sage [2009/02/14(土) 03:58:23 ID:???] 英語サイトの情報見れないなら1.0が無難。 そうでないなら1.2。
624 名前:nobodyさん mailto:sage [2009/02/14(土) 19:37:59 ID:???] PHPが5.1なので1.1使ってる。 同じような人、結構いそうな気がするけど。
625 名前:nobodyさん mailto:sage [2009/02/15(日) 02:18:10 ID:???] あれ、5.1って致命的なバグがあって使わないようにとかアナウンスされてなかったっけ。 どんなバグだったか忘れたけど
626 名前:nobodyさん mailto:sage [2009/02/15(日) 02:23:40 ID:???] cent osが5.1じゃなかったっけ?
627 名前:nobodyさん mailto:sage [2009/02/15(日) 02:29:06 ID:???] そんなもん入れ替えろよ…
628 名前:nobodyさん mailto:sage [2009/02/15(日) 04:25:24 ID:???] PHP5.1を使い続ける必要性があるのか? 単純なパフォーマンスでも5.2系の方が優れてるはず
629 名前:nobodyさん mailto:sage [2009/02/15(日) 12:28:12 ID:???] 1.2を使っています。 メール送信を実装しようと思ったのですが、 $mail = new sfMail(); とすると、 Class 'sfMail' not found になってしまいます。 なにか設定が必要なのでしょうか?
630 名前:nobodyさん mailto:sage [2009/02/15(日) 13:09:51 ID:???] >>629 compact10
631 名前:629 mailto:sage [2009/02/15(日) 13:21:32 ID:???] >>630 なるほど。sfMailはなくなったんですね。 ほかの方法を調べてみます。
632 名前:nobodyさん mailto:sage [2009/02/15(日) 13:34:25 ID:???] >>627 ,628 勝手にサーバー環境を変えることが出来ない仕事ってのもあるんですよ。 スレ違いすんません。
633 名前:nobodyさん mailto:sage [2009/02/15(日) 14:07:13 ID:???] アクション内で内部URLから絶対URLを生成するにはどうすればいいの?
634 名前:nobodyさん [2009/02/15(日) 14:11:46 ID:LyJslojL] >>626 だね。Redhat/CentOSの5は5.1。 >>628 そりゃま、完全に1から自分でインストールできるんならね。 流石にPHP4はもう使わなくてすむとは思うがw
635 名前:nobodyさん mailto:sage [2009/02/16(月) 01:09:30 ID:???] >>633 smfony 1.2の場合 sfContext::getInstance()->getController()->genUrl($internal_uri, $absolute); ↑url_forの実装 $internal_uriに内部URL $absoluteは相対パスならfalse、絶対パスならtrueを渡す
636 名前:nobodyさん mailto:sage [2009/02/16(月) 08:41:43 ID:???] いつまでも穴あきの5.1使うような仕事なんてしてちゃだめだろ
637 名前:nobodyさん mailto:sage [2009/02/16(月) 12:40:27 ID:???] 仕事を選べない人は大変ですね
638 名前:nobodyさん [2009/02/16(月) 13:00:38 ID:Eg6IU/sq] pluginアップしてみたんだけど リポジトリにあげる前に一度symfony plugin:install プラグイン名しちゃって No release available for plugin プラグイン名 というエラーメッセージがでたんです。 で、その後ファイル上げてから何度やっても同じメッセージでインストールできなくなっちゃいました。 ためしに別のサーバーに入れてみたら普通にインストールできました。 symfony cc とか pear clear-cache とか rm -f cache/.pear とか pear channel-update plugins.symfony-project.org とかやってみたけどだめでした。 サーバー再起動もだめでした。 どなたか方法ご存知の方いらっしゃいませんか?
639 名前:633 mailto:sage [2009/02/16(月) 16:25:53 ID:???] >>635 ありがとうございます。 $this->genUrl() でダメだったのであきらめてました。 でも、なんでこんなに長いんだろう・・・;
640 名前:nobodyさん mailto:sage [2009/02/16(月) 16:48:05 ID:???] 欲しいメソッドはmyActionに実装したらいいだけジャン
641 名前:nobodyさん mailto:sage [2009/02/16(月) 23:37:58 ID:???] >>639 補足 アクション内からなら、 sfContext::getInstance()->getController()を $this->getController()に変更出来る(やってることは同じ。少しは短くなった?) また、内部URLではなく、ルート名と、クエリパラメータにする値が分かっているのなら、アクション内で $this->generateUrl($route, $params, $absolute)を呼ぶことでURLを生成することができます。 ここで、 $routeはルート名 $paramsはモデルオブジェクトか値の配列。 ただしモデルオブジェクトが渡せるのは、ルートのoptions['type'] === 'object'の時のみ。 (一言でうまく説明出来ないので、詳細はsfObjectRoute::generate()のソース見て) 配列であれば、タイプに関係なく渡せる。 クエリパラメータが不要な時は空配列(array()) $absoluteは>>635 同様、絶対パスか相対パスかどうか わたしは、アクション内でリダイレクトのURLを作成する際にgenerateUrl()を使用しています。
642 名前:nobodyさん [2009/02/17(火) 20:01:10 ID:K56TvPG0] PropelでEXISTS演算子を使いたい場合、やっぱりCriteria::CUSTOMで直接記述するしかないのかな? まぁ、副問い合わせも使うんだし、当たり前といえば当たり前か。 やってみたことある人いる?
643 名前:nobodyさん mailto:sage [2009/02/18(水) 08:04:45 ID:???] 質問です。 DBテーブル定義を修正しようとして、schema.ymlを修正し、 ./symfony propel-build-all を実行すると、 DBテーブルの内容が全部消えてしまいます。 今はダンプファイルを取っておいて、あとで書き戻すことで対応していますが、 何かもっと洗練された方法はないでしょうか?
644 名前:nobodyさん mailto:sage [2009/02/18(水) 09:08:41 ID:???] propel-build-model
645 名前:643 mailto:sage [2009/02/18(水) 09:25:54 ID:???] 追記です。 propel-load-data というコマンドがあるようです。 しかしこれは、DBにセットするデータをyamlファイルで用意してやらなければ なりません。WEBブラウザなどからDBに入力したデータをyamlファイルに書き出 す方法は無いようなので、yamlファイルを作るのはちょっと手間に感じられます。 これならダンプファイルを取っておいて、それをエディタで修正してロードす るほうが現実的なような...。
646 名前:nobodyさん mailto:sage [2009/02/18(水) 12:45:51 ID:???] すみません、symfony & MySQLで、最後に挿入した行のIDを取得するには、 どうしたらいいですか?
647 名前:nobodyさん mailto:sage [2009/02/18(水) 19:49:24 ID:???] >>645 自分は www.symfony-project.org/plugins/sfPropelSqlDiffPlugin これをつかってるよ。
648 名前:643 mailto:sage [2009/02/18(水) 21:35:13 ID:???] >>647 ありがとうございます。参考にさせていただきます。 Plugins | sfPropelMigrationsLightPlugin | 1.1.2 | symfony | Web PHP Framework www.symfony-project.org/plugins/sfPropelMigrationsLightPlugin こんなのもあるようです。Rails の Migration と同じなのかしら。
649 名前:nobodyさん mailto:sage [2009/02/18(水) 21:46:02 ID:???] >>648 全然違う
650 名前:nobodyさん mailto:sage [2009/02/18(水) 21:51:22 ID:???] >>610 $c =new Criteria(); $c->add(TJobPeer::ID, "(t_job.ID IN ( SELECT v_rel_job_area.JOB_ID FROM v_rel_job_area WHERE v_rel_job_area.DISTRICT_ID = 1 )) AND (t_job.ID IN ( SELECT t_rel_job_category.JOB_ID FROM t_rel_job_category WHERE t_rel_job_category.CATEGORY_ID IN (1, 5, 6) )) AND ( (t_job.STATUS IN (1, 2)) OR (t_job.STATUS = 0 AND t_job.ID IN ( SELECT t_rel_job_publish.JOB_ID FROM t_rel_job_publish WHERE t_rel_job_publish.PUBLISH_ID = 1)) ) ", Criteria::CUSTOM); $rs = TJobPeer::doSelect($c);
651 名前:nobodyさん mailto:sage [2009/02/19(木) 20:08:27 ID:???] >>646 Propelなら、モデルのsaveメソッドを呼び出した後、単にgetすればOK。 Doctrineは知らんw
652 名前:nobodyさん mailto:sage [2009/02/24(火) 21:06:31 ID:???] symfony1.2ってデバックモードの時WEBデバックツールでSQLって表示される? symfony1.0の時はされたと思うんだけど、1.2からされなくなってるみたいで。 あと、1.2で実行したSQL文そのものって取得できますか?(1.0でのgetLastExecutedQueryのような)
653 名前:nobodyさん mailto:sage [2009/02/24(火) 21:19:50 ID:???] >>652 SQL表示されるよ symfonyどこにインストールしてるか知らんけど、pearから取ってきたのなら、 javascriptを有効にした上で、 data/symfony/web/sfに対して、仮想ディレクトリ(エイリアス)を作るか、 プロジェクトのwebフォルダにコピーすれば、いけるはず。 また、この情報は、実行したログを解析してるだけだろうから、ログ直接眺めてみたらいいんじゃない? 1.2から使い始めたので、getLastExecutedQueryとか分かんね。 これも、ログ見たらいいんじゃないの?としか言えない
654 名前:nobodyさん mailto:sage [2009/02/25(水) 12:03:02 ID:???] >>652 バージョン古いか、propel.iniの設定か
655 名前:nobodyさん mailto:sage [2009/02/25(水) 13:06:51 ID:???] >>653 >>654 database.ymlのclassnameをprodと同じにしてたのが原因だったみたいです。。 DebugPDOに変えたらSQL表示されました getLastExecutedQueryはログがどうやってSQL取り出してるか探してみます
656 名前:nobodyさん mailto:sage [2009/02/25(水) 13:11:42 ID:???] Propelってsqlつくるだけってのが出来ないのがウザイな。 絶対実行とセットだから、サブクエリやろうとすると独自拡張に頼らざるを得ない
657 名前:nobodyさん mailto:sage [2009/02/27(金) 14:01:43 ID:???] symfonyの問題じゃないかもだけど、携帯サイトで実行結果をファイルにキャッシュって セッションIDをURLで埋め込むから出来ないよね?
658 名前:nobodyさん mailto:sage [2009/02/28(土) 23:20:00 ID:???] できるよ
659 名前:nobodyさん mailto:sage [2009/03/03(火) 15:02:29 ID:???] >>656 $sql = BasePeer::createSelectSql($criteria, array());
660 名前:nobodyさん mailto:sage [2009/03/10(火) 07:45:12 ID:???] >>659 あのさ、$c->add(ModelPeer::ID , 1); とかやってごらん idのとこが?になってるだろ? ?を置換する独自拡張が必要という意味だって思わなかった? あと、第二引数は参照になってるから、 array()なんてやっちゃ駄目だよ。 勉強になったかな?
661 名前:nobodyさん mailto:sage [2009/03/11(水) 06:50:03 ID:???] symfonyで自作のクラス組み込んだ時とかに、 不具合があっても画面真っ白でエラーも表示されないってことない? レスポンスが情報吐く前にコケてるのか知らないけど この状態になるとすげーデバッグしにくい。 高度にレスポンス管理するのも考えものだよなぁ
662 名前:nobodyさん mailto:sage [2009/03/11(水) 08:53:10 ID:???] >>661 Apacheのエラーログ見たら PHPレベルのFatalエラー吐かれてない? dev環境だけ表示される場合もあるし、 /var/log/messagesかも。
663 名前:nobodyさん mailto:sage [2009/03/11(水) 09:09:27 ID:???] >>662 apacheログのこと忘れてた!と思って見たら exit signal Segmentation faultが大量に・・ 調べたらxdebugの設定ミスだった 助かりました。ありがとう!
664 名前:nobodyさん mailto:sage [2009/03/13(金) 13:57:23 ID:???] Cakeからsymfonyに移りたいのですが、 なにから勉強すればいいのかわかりません。 定番のチュートリアルなどあるのでしょうか? いくつか見つけたのですが、バージョンが古いようで・・・ 主にsfFormの使い方とデータの登録・取得、ログイン処理などを覚えたいのですが・・・
665 名前:nobodyさん mailto:sage [2009/03/13(金) 14:29:07 ID:???] >>664 symfony 1.2ならJobeet www.symfony-project.org/jobeet/1_2/ 11日目までは日本語訳されてる。 d.hatena.ne.jp/Kiske/archive?word=jobeet なんと12日目も公開されてた。感謝。 ログイン周りは13日目かな。
666 名前:664 mailto:sage [2009/03/14(土) 00:20:34 ID:???] >>665 1.2向けのチュートリアルが始まっていたのですね! 翻訳してくれている方もいるとは・・・ さっそく試してみたいと思います!
667 名前:nobodyさん mailto:sage [2009/03/14(土) 02:41:54 ID:???] >>664 移りたいと思った理由を知りたい
668 名前:664 mailto:sage [2009/03/14(土) 03:16:17 ID:???] >>667 Cakeは標準でコンポーネントなどが充実していて便利なのですが、 それらのクセが強くて、 ちょっと外れたことをしようとするとえらい面倒で・・・ とくにAuthコンポーネントやSecurityコンポーネントなど。 また、Cakeで作られたサイトは、 だいたい、ちょっと見ただけですぐCakeで作られていると分かります。 それくらいクセが強いです。 うまくいえませんが、こんなかんじです。
669 名前:nobodyさん mailto:sage [2009/03/14(土) 09:25:05 ID:???] 質問です。 キャッシュ機能を使って、任意の文字列をキャッシュしたいのですが、 どのようにすればよいのでしょうか? 分かる方がいましたら教えてください!
670 名前:nobodyさん mailto:sage [2009/03/14(土) 15:43:13 ID:???] すみませんが、質問です。 fillin がうまく動かないのですが、これはどこに問題があるのでしょうか? ○仕様:page/hoge → page/fuga に遷移 ○actions.class.php public function executeHoge() { $this->hoge = "ほげ"; } public function executeFuga() { } public function handleErrorFuga() { $this->forward('page', 'hoge'); } ○hogeSuccess.php <?php echo form_tag('page/fuga'); echo $sf_request->getError('hoge'); echo input_tag('hoge', $sf_params->get('hoge')); //echo input_tag('hoge', $sf_request->getParameter('hoge', $hoge)); ?> </form> ○fugaSuccess.php <h1>おめでとう!</h1> ○validation/fuga.yml fillin: enabled: on fields: hoge: sfStringValidator: min: 3 min_error: "ほげは3字以上で入力してください。"
671 名前:670 mailto:age [2009/03/14(土) 15:48:40 ID:???] すみません、hogeSuccess.phpが間違っていました。 ○hogeSuccess.php <?php echo form_tag('page/fuga'); echo $sf_request->getError('hoge'); echo input_tag('hoge', $hoge); // 直した行。 //echo input_tag('hoge', $sf_request->getParameter('hoge', $hoge)); ?> </form> うまく動かない、というのは、バリデーションが働いてhogeSuccess.phpを表示 したとき、ユーザの入力値ではなく、デフォルト値"ほげ"が表示されてしまう ということです。 その下のコメントアウトした行のように書けば動きますが、この記述だと fillin: enabled: off にしてもユーザの入力値になるので、fillinが働いてい るとは言えないと思います。 なお、コメントアウトした行の記述が冗長なのは、以下の理由です。 ○[symfony] テンプレートで使える$sf_params->get()の2番目の引数について gomojp.blog77.fc2.com/blog-entry-54.html 以上です。どなたかアドバイスをお願いします。
672 名前:670 mailto:sage [2009/03/14(土) 16:11:20 ID:???] 補足です。 symfonyでhierselectができる!の補足(fillin時の手当) | LinuxなWEBデザイナーの覚書き。 php-sql-gdgd.jugem.jp/?eid=13 > fillinを受ける側のフォームは、各input_tag等のフォームヘルパー関数の引 > 数2つ目(デフォルト値を入れるところ)をnullにする。 > ※私は最初「''」を指定した状態でフィルインできませんでした。object系 > のフォームヘルパーを使ってDBからデフォルト値を持ってきてる場合はどう > なるんだろう??今度実験してみよう… たしかに、hogeSuccess.php を echo input_tag('hoge', null); // さらに直した行。 と書くと、バリデーションが hogeSuccess.php に差し戻したとき、フォームに ユーザの入力値が入っていました。fillinが動作したようです。 しかしこれでは、デフォルト値の設定ができなくて困ります。page/hoge では $hogeの値である"ほげ"がフォームに入っていて、バリデーションが動作したと きは、ユーザの入力値が表示されてほしいのです。
673 名前:670 mailto:sage [2009/03/14(土) 16:30:13 ID:???] すみません、自己解決? したみたいです。 試行錯誤して、 echo input_tag('hoge', null, array('value'=>$hoge)); と書いてみたら、希望していた通り、デフォルト値もユーザ入力値も表示され ました。 しかしこれもかなり冗長なので、ためしに echo input_tag('hoge', $hoge); に戻したところ、今までと違って、問題なく表示されたのです。 なんで?!最初のコードと少しも変わらないのに?! とりあえず動作はするようなので、このまま開発を進めることにします。 お騒がせして申し訳ありませんでした。
674 名前:nobodyさん mailto:age [2009/03/16(月) 15:50:44 ID:???] 質問なんだけど、validation/[アクション名].ymlって、部品化とかして共通化 する方法は無いんだろうか? 二つのアクションがあって、大部分のフィールドは共通なんだけど、片方にだ けいくつか追加フィールドがあるので、バリデーションの設定の大部分が共通 になる。うまくまとめられたらいいと思うんだけど。
675 名前:674 mailto:sage [2009/03/16(月) 16:50:44 ID:???] すみません、自己解決? したみたいです。
676 名前:674 ◆UAG1fZyrYA mailto:sage [2009/03/16(月) 18:47:06 ID:???] >>675 は騙り。まだ解決してない。
677 名前:nobodyさん mailto:sage [2009/03/17(火) 10:32:44 ID:???] 継承
678 名前:nobodyさん mailto:sage [2009/03/18(水) 16:33:36 ID:???] だからsfFormが生まれたわけで
679 名前:nobodyさん [2009/03/20(金) 20:30:44 ID:bZdrj/Cj] sfFormの話が出たので少々便乗。 1.1以降でSymfonyをステートフルにするには、sfFormでCSRF対策フィールドを1リクエストごとにユニークにすればいいんだよね? ソースを嘗めたらそんなに難しくなさそうな気がしたんだけど、何か勘違いしてるかな? いや、「PHPのフレームワークでステートフルなのはPiece Frameworkだけ、なんて文章をちらりと読んだんでね。 もちろん、↑のやり方だと、sfFormで値を持ちまわしているところしかステートフルにならんのは理解してる。 Piece Frameworkのステートフル機能のウリは、getだろうと初回のpostだろうと(その気になれば)ステートフルに出来るってところなんだろうとは思うけど。
680 名前:nobodyさん mailto:sage [2009/03/22(日) 04:10:40 ID:???] 質問です。 1.2使ってるんですが、フォームからunsetで消した項目に、 POSTされた際にアクション内で値をセットするにはどう書けばいいのでしょうか? 送信された値から別の値を生成してインサートする、みたいなことがやりたいです。
681 名前:nobodyさん mailto:sage [2009/03/22(日) 18:32:07 ID:???] もうCakeのはいいからどっかsymfonyの本をだしてくれ〜
682 名前:nobodyさん [2009/03/22(日) 22:34:47 ID:XhaR9twF] >>680 自分は1.1だが、そーゆーことやりたいときはbindする前の配列いぢくる。 一度validateしたいときは、 1.普通にbind ↓ 2.NGならおしまい、OKなら値生成→配列に格納 ↓ 3.バリデータを置き換える ↓ 4.もう一度bindしてvalidate かな。まぁ、sfFomオーバーライドすればもう少しスマートに出来ると思うが。 >>681 だね。もう少ししっかりした、1.1/1.2対応の解説書は欲しい。