symfony PHPフレームワークpart2 (531レス)
symfony PHPフレームワークpart2 http://medaka.5ch.net/test/read.cgi/php/1268753684/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
221: nobodyさん [sage] 2010/10/11(月) 01:17:59 ID:??? >>220 $this->thread = Doctrine_Core::getTable('thread') ->createQuery('t') ->where('t.id',$request->getParameter('id')) ->leftJoin('t.User u') ->execute(); $this->thread = Doctrine_Core::getTable('thread') ->createQuery('t') ->where('t.id = ?',$request->getParameter('id')) ->leftJoin('t.User u') ->fetchOne(); に変えたらどう? http://medaka.5ch.net/test/read.cgi/php/1268753684/221
222: nobodyさん [sage] 2010/10/11(月) 02:17:36 ID:??? fetchOne()に変えて、$thread['User']['name'] で取得できました! SQLも新しく発行されていないようです。 ただ、$thread->getId() の構文が使えなくて $thread['id'] に全部書き換えないといけませんけど>< http://medaka.5ch.net/test/read.cgi/php/1268753684/222
223: nobodyさん [sage] 2010/10/11(月) 02:55:20 ID:??? サンプルに合わせて言い方変えちゃいましたけど、 実際はfetchArray()で取得して、foreach()でループさせました。 とりあえずうまく行ったようです。 http://medaka.5ch.net/test/read.cgi/php/1268753684/223
224: nobodyさん [sage] 2010/10/11(月) 20:37:48 ID:??? $form->isValid()に失敗したとき、失敗の内容はどうやって取得できますか? 具体的には、CSRFチェックに引っかかったとき、自動的にhoge/newにリダイレクトさせたいんです。 http://medaka.5ch.net/test/read.cgi/php/1268753684/224
225: nobodyさん [sage] 2010/10/12(火) 00:52:35 ID:??? >>224 sfErrorSchemaにでも、入ってるんじゃないの? $form->getErrorSchema()だったかな? http://medaka.5ch.net/test/read.cgi/php/1268753684/225
226: nobodyさん [sage] 2010/10/13(水) 20:37:10 ID:??? 特定のユーザーを、強制ログアウトさせるにはどうすればいいですか? http://medaka.5ch.net/test/read.cgi/php/1268753684/226
227: nobodyさん [sage] 2010/10/14(木) 10:37:08 ID:??? >>226 myUserの初期化メソッドで通常の処理の後にIDみて強制ログアウトする処理を足す。 http://medaka.5ch.net/test/read.cgi/php/1268753684/227
228: nobodyさん [sage] 2010/10/14(木) 17:05:40 ID:??? >>227 すいません、そうゆう意味じゃないです。 たとえば、管理者が荒らし行為真っ最中のユーザーを見つけたら、 そいつのセッションやらクレデンシャルやらをクリアしてログアウトさせることをイメージしてました。 セッションにユーザーIDを入れておき、 全セッションファイルをトラバースして、 「id|i:(\d)+:123;」みたいにマッチしたファイルを削除すればいいかな? symfony関係なくなっちゃうけど。。。 http://medaka.5ch.net/test/read.cgi/php/1268753684/228
229: nobodyさん [sage] 2010/10/14(木) 17:34:03 ID:??? Doctrineで書いたコードの、selectがうまく反映されません。 count()をやめて、execute()にして返ってきたDoctrineCorectionをcount()すると正しい件数が取得できます。 でも重いので、SQLのcount()でなんとか処理したいです。 public static function getLoginDays($id) { return LoginTable::getInstance() ->createQuery('l') ->select('DATE_FORMAT(l.created_at,"%Y-%m-%d") as days, count(*) as num') ->where('l.user_id = ?',$id) ->groupBy('DATE_FORMAT(l.created_at,"%Y-%m-%d")') ->orderBy('days') ->count(); } #symfonyが発行したSQL SELECT COUNT(*) AS num_results FROM log l WHERE l.user_id = '1' GROUP BY DATE_FORMAT(l.created_at, "%Y-%m-%d"); 結果、日付の区別無しに、ログの総数が返ります。 http://medaka.5ch.net/test/read.cgi/php/1268753684/229
230: nobodyさん [sage] 2010/10/14(木) 17:44:03 ID:??? 恥ずかしいミスした! DoctrineCorectionは、DoctrineCollectionの間違いでした^^; http://medaka.5ch.net/test/read.cgi/php/1268753684/230
231: nobodyさん [sage] 2010/10/14(木) 19:07:30 ID:??? >>228 それならis_active int(1)とかでフラグ項目をDBのユーザーテーブルに持たせておいて、公開側では myUserの初期化で$dbuser->getIsActive()の値を調べて強制ログアウトさせればいいんじゃない? 強制ログアウトさせたいユーザーは、管理者が裏画面からis_activeの値を更新して強制ログアウト側に 落とす。 username password is_active http://medaka.5ch.net/test/read.cgi/php/1268753684/231
232: 231 [sage] 2010/10/14(木) 19:08:38 ID:??? ごめん、途中送信。 username password is_active testuser ****** 1 ⇒ログインできる nguser ****** 0 ⇒ログインできない&強制ログアウト http://medaka.5ch.net/test/read.cgi/php/1268753684/232
233: nobodyさん [sage] 2010/10/14(木) 20:07:47 ID:??? myUserにコンストラクタ定義すると、深い迷路に迷い込めそうな予感。。。 http://medaka.5ch.net/test/read.cgi/php/1268753684/233
234: 229 [sage] 2010/10/15(金) 17:53:24 ID:??? ちょっと語弊がありました。 グループ化された日付が1つだけの場合、グループ化されていないままのレコード総数が返ります。 日付が複数の場合、正しい値が返ります。 http://medaka.5ch.net/test/read.cgi/php/1268753684/234
235: nobodyさん [sage] 2010/10/15(金) 17:59:07 ID:??? 分かったら当たり前だけど、myUserのコンストラクタは public function __construct(sfEventDispatcher $dispatcher, sfStorage $storage, $options = array()) { parent::__construct($dispatcher, $storage, $options); } って書かないとダメなのね。__construct()とだけ書いてちょっと泥沼になった。 http://medaka.5ch.net/test/read.cgi/php/1268753684/235
236: nobodyさん [sage] 2010/10/15(金) 18:25:07 ID:??? テンプレート内でvar_dump()すると、指定した変数以外もすんごい量がダンプされるんですけど $thisとかも見に行ってるんですか?? http://medaka.5ch.net/test/read.cgi/php/1268753684/236
237: nobodyさん [sage] 2010/10/15(金) 21:08:43 ID:??? >>236 変数といってもDoctrine_Recordのオブジェクトが入ってる変数だったらものすごい量でて当たり前。 http://medaka.5ch.net/test/read.cgi/php/1268753684/237
238: nobodyさん [] 2010/10/16(土) 17:14:44 ID:JUO6sOS6 フォームで、ユーザーに改ざんされたくない値を扱う方法で質問です。 formで隠したいパラメータ(from_id)をunsetしておいて、アクションで > $message = new Message(); > $message['from_id'] = $this->getUser()->getAttribute('id'); > $form = new MessageForm($message); とやる方法と、 formでunsetせずに > $values = $this->getUser()->getAttribute($form->getName()); > $values['from_id'] = $this->getUser()->getAttribute('id'); > $form = $this->processForm($form, $values); と上書きする方法の2通りがあると思うのですが、 どちらも安全でしょうか? それとも、他に方法があるんでしょうか? http://medaka.5ch.net/test/read.cgi/php/1268753684/238
239: nobodyさん [] 2010/10/16(土) 20:04:03 ID:JUO6sOS6 セッションがタイムアウトして、AuthenticatedとCredencialがクリアされたのに、 $this->getUser()->setAttribute()した値が残ってるのですが、 これって普通ですか? http://medaka.5ch.net/test/read.cgi/php/1268753684/239
240: nobodyさん [sage] 2010/10/18(月) 18:21:55 ID:??? >>239 認証とセッションデータをごっちゃにするなよ http://medaka.5ch.net/test/read.cgi/php/1268753684/240
241: nobodyさん [] 2010/10/18(月) 18:54:39 ID:3g1bUgIr DoctrineでのInnnerJoinの書き方で苦戦しています(汗 下記のSQL文でコマンドラインでは動いてるんですが、 どのように記述すればよいのでしょうか? SELECT w.target_user_id as user_id, DATE_FORMAT(w.created_at,"%Y-%m-%d") as days,w.type as type,count(*) as num FROM warn w INNER JOIN ( SELECT target_user_id,count(*) AS datas FROM warn GROUP BY target_user_id ) AS SUB USING(target_user_id) GROUP BY user_id,days,type ORDER BY datas DESC ,user_id ASC,days ASC,type ASC; http://medaka.5ch.net/test/read.cgi/php/1268753684/241
242: nobodyさん [] 2010/10/19(火) 02:27:53 ID:0CIYXc+U ユーザー情報を持つUserAccountテーブルと、そのIDをカラムに持つBlogテーブルをリレーションさせておくと、 フォームの作成で下記のようなファイルが生成されます。 これが、ユーザー数が多くて、かつuser_idをunset()して使うケースではかなり無駄な気がします。 手作業でsetup()を上書きして、widgetをsfWidgetFormInputText、 validatorをsfValidatorIntegerに変える、という感じに書き換えたいのですが、 スキーマのオプションとかでsfWidgetFormDoctrineChoice()&$this->getRelatedModelName()を 使わないようにはできないんでしょうか? $this->getRelatedModelName()の呼び出しは1回で済むはずなのに無駄なコードだし。。。 ユーザーが1万人になったら、フォームの表示のたびに2万件のレコード引っ張ってくるつもり? abstract class BaseBlogForm extends BaseFormDoctrine { public function setup() { $this->setWidgets(array( 'id' => new sfWidgetFormInputHidden(), 'user_id' => new sfWidgetFormDoctrineChoice(array('model' => $this->getRelatedModelName('UserAccount'), 'add_empty' => false)), )); $this->setValidators(array( 'id' => new sfValidatorChoice(array('choices' => array($this->getObject()->get('id')), 'empty_value' => $this->getObject()->get('id'), 'required' => false)), 'user_id' => new sfValidatorDoctrineChoice(array('model' => $this->getRelatedModelName('UserAccount'))), )); http://medaka.5ch.net/test/read.cgi/php/1268753684/242
243: nobodyさん [] 2010/10/19(火) 21:06:26 ID:0CIYXc+U sfWidgetFormDoctrineChoice::getChoices() が呼ばれるのはrender()の時だけ? 大ポカだった。 http://medaka.5ch.net/test/read.cgi/php/1268753684/243
244: nobodyさん [] 2010/10/20(水) 16:50:03 ID:mJZvzEer sfGuardPluginを使わずに、自分でログインページを作ったのですが、 is_secure:true にした場合にログインページにforwardしてくれるのはいいのですが 認証成功後にforwardする前のページにredirectするにはどうすればいいでしょうか? http://medaka.5ch.net/test/read.cgi/php/1268753684/244
245: 239 [sage] 2010/10/21(木) 01:56:28 ID:??? 認証情報はセッションに入ってるものだと思ってました。 認証情報はどこに保存されているんでしょう?? http://medaka.5ch.net/test/read.cgi/php/1268753684/245
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 286 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.016s