symfony PHPフレームワークpart2 (531レス)
上下前次1-新
224(1): nobodyさん [sage] 2010/10/11(月) 20:37:48 ID:??? AAS
 $form->isValid()に失敗したとき、失敗の内容はどうやって取得できますか? 
  
 具体的には、CSRFチェックに引っかかったとき、自動的にhoge/newにリダイレクトさせたいんです。
225: nobodyさん [sage] 2010/10/12(火) 00:52:35 ID:??? AAS
 >>224 
 sfErrorSchemaにでも、入ってるんじゃないの? 
  
 $form->getErrorSchema()だったかな? 
226(1): nobodyさん [sage] 2010/10/13(水) 20:37:10 ID:??? AAS
 特定のユーザーを、強制ログアウトさせるにはどうすればいいですか? 
227(1): nobodyさん [sage] 2010/10/14(木) 10:37:08 ID:??? AAS
 >>226 
 myUserの初期化メソッドで通常の処理の後にIDみて強制ログアウトする処理を足す。 
228(1): nobodyさん [sage] 2010/10/14(木) 17:05:40 ID:??? AAS
 >>227 
 すいません、そうゆう意味じゃないです。 
 たとえば、管理者が荒らし行為真っ最中のユーザーを見つけたら、 
 そいつのセッションやらクレデンシャルやらをクリアしてログアウトさせることをイメージしてました。 
  
 セッションにユーザーIDを入れておき、 
 全セッションファイルをトラバースして、 
 「id|i:(\d)+:123;」みたいにマッチしたファイルを削除すればいいかな? 
 symfony関係なくなっちゃうけど。。。 
229(1): nobodyさん [sage] 2010/10/14(木) 17:34:03 ID:??? AAS
 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"); 
  
 結果、日付の区別無しに、ログの総数が返ります。 
230: nobodyさん [sage] 2010/10/14(木) 17:44:03 ID:??? AAS
 恥ずかしいミスした! 
 DoctrineCorectionは、DoctrineCollectionの間違いでした^^; 
231(1): nobodyさん [sage] 2010/10/14(木) 19:07:30 ID:??? AAS
 >>228 
 それならis_active int(1)とかでフラグ項目をDBのユーザーテーブルに持たせておいて、公開側では 
 myUserの初期化で$dbuser->getIsActive()の値を調べて強制ログアウトさせればいいんじゃない? 
 強制ログアウトさせたいユーザーは、管理者が裏画面からis_activeの値を更新して強制ログアウト側に 
 落とす。 
  
 username password is_active 
232: 231 [sage] 2010/10/14(木) 19:08:38 ID:??? AAS
 ごめん、途中送信。 
  
 username password is_active 
 testuser   ******    1     ⇒ログインできる 
 nguser     ******    0     ⇒ログインできない&強制ログアウト
233: nobodyさん [sage] 2010/10/14(木) 20:07:47 ID:??? AAS
 myUserにコンストラクタ定義すると、深い迷路に迷い込めそうな予感。。。 
234: 229 [sage] 2010/10/15(金) 17:53:24 ID:??? AAS
 ちょっと語弊がありました。 
 グループ化された日付が1つだけの場合、グループ化されていないままのレコード総数が返ります。 
 日付が複数の場合、正しい値が返ります。 
235: nobodyさん [sage] 2010/10/15(金) 17:59:07 ID:??? AAS
 分かったら当たり前だけど、myUserのコンストラクタは 
  
  public function __construct(sfEventDispatcher $dispatcher, sfStorage $storage, $options = array()) 
  { 
   parent::__construct($dispatcher, $storage, $options); 
  } 
  
 って書かないとダメなのね。__construct()とだけ書いてちょっと泥沼になった。 
236(1): nobodyさん [sage] 2010/10/15(金) 18:25:07 ID:??? AAS
 テンプレート内でvar_dump()すると、指定した変数以外もすんごい量がダンプされるんですけど 
 $thisとかも見に行ってるんですか?? 
237: nobodyさん [sage] 2010/10/15(金) 21:08:43 ID:??? AAS
 >>236 
 変数といってもDoctrine_Recordのオブジェクトが入ってる変数だったらものすごい量でて当たり前。 
238: nobodyさん [] 2010/10/16(土) 17:14:44 ID:JUO6sOS6(1/2) AAS
 フォームで、ユーザーに改ざんされたくない値を扱う方法で質問です。 
  
 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通りがあると思うのですが、 
 どちらも安全でしょうか? 
 それとも、他に方法があるんでしょうか?
239(2): nobodyさん [] 2010/10/16(土) 20:04:03 ID:JUO6sOS6(2/2) AAS
 セッションがタイムアウトして、AuthenticatedとCredencialがクリアされたのに、 
 $this->getUser()->setAttribute()した値が残ってるのですが、 
 これって普通ですか?
240: nobodyさん [sage] 2010/10/18(月) 18:21:55 ID:??? AAS
 >>239 
 認証とセッションデータをごっちゃにするなよ 
241: nobodyさん [] 2010/10/18(月) 18:54:39 ID:3g1bUgIr(1) AAS
 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;
242: nobodyさん [] 2010/10/19(火) 02:27:53 ID:0CIYXc+U(1/2) AAS
 ユーザー情報を持つ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'))), 
   ));
243: nobodyさん [] 2010/10/19(火) 21:06:26 ID:0CIYXc+U(2/2) AAS
 sfWidgetFormDoctrineChoice::getChoices() 
 が呼ばれるのはrender()の時だけ? 
 大ポカだった。
244: nobodyさん [] 2010/10/20(水) 16:50:03 ID:mJZvzEer(1) AAS
 sfGuardPluginを使わずに、自分でログインページを作ったのですが、 
 is_secure:true にした場合にログインページにforwardしてくれるのはいいのですが 
 認証成功後にforwardする前のページにredirectするにはどうすればいいでしょうか? 
245: 239 [sage] 2010/10/21(木) 01:56:28 ID:??? AAS
 認証情報はセッションに入ってるものだと思ってました。 
 認証情報はどこに保存されているんでしょう??
246: nobodyさん [] 2010/11/04(木) 18:06:43 ID:kCotlNfK(1) AAS
 ファイルアップロードで、ファイル名の「'」が「\'」になるんですけど 
 これってSymfonyの問題ですか? 
 PHPも初心者なもんでどうすればいいのか分かりません。。。 
247: nobodyさん [sage] 2010/11/06(土) 13:24:52 ID:??? AAS
 問題があるとしたらファイル名に「'」を使ってることかな 
248: nobodyさん [sage] 2010/11/07(日) 05:37:42 ID:??? AAS
 php初心者というかパソコン初心者レベルだな 
上下前次1-新書関写板覧索設栞歴
あと 283 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.026s