symfony PHPフレームワークpart2 (531レス)
1-

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初心者というかパソコン初心者レベルだな
249: nobodyさん [sage] 2010/11/08(月) 03:03:57 ID:??? AAS
セッション(認証?)が30分程度で切れてしまいます。
以下の設定だけでは、変更できないんでしょうか?

#.htaccess
php_value session.gc_maxlifetime 86400
php_value session.gc_probability 1
php_value session.gc_divisor 100

#setting.yml
all:
user:
class: myUser
param:
timeout: 86400
250: nobodyさん [sage] 2010/11/08(月) 20:05:11 ID:??? AAS
factories.ymlに書くんだと思う

user:
class: myUser
param:
timeout: 86400

こんな感じ
251: nobodyさん [sage] 2010/11/09(火) 20:43:10 ID:??? AAS
さんくす!
252
(2): nobodyさん [sage] 2010/11/13(土) 05:16:41 ID:??? AAS
sfDoctrineGuardPlugin使ってます。
バックエンドで、is_super_adminなアカウントだけ閲覧を許可していんですけど
以下のsecurity.ymlでうまくいきません。クレデンシャルが違うんでしょうか?

index:
is_secure: true
credentials: admin

それと、新規登録時に
Notice: Undefined offset: 1 in D:\MyProject\symfony\lib\vendor\symfony\lib\config\sfGeneratorConfigHandler.class.php on line 68

という謎のエラーが出てしまいます。
sfGuardAuthに空のgenerator.ymlを作ると治るという情報があったのですが
治りませんでした。他に解決方法はありませんでしょうか?
253: nobodyさん [sage] 2010/11/13(土) 07:15:40 ID:??? AAS
>>252
credentails: [admin]
じゃなくて?
sfDoctrineGuardPlugin使ったことないからよくしらんけど
254: 252 [sage] 2010/11/13(土) 21:33:07 ID:??? AAS
「Notice: Undefined offset: 1」のエラーのほうは、

外部リンク:www.symfony-project.org
を参考にしたAPP/congig/generator.ymlの変更をやめて、
中身を全部削除したらうまくいったみたい。
255: nobodyさん [sage] 2010/11/14(日) 02:59:13 ID:??? AAS
日別のアクセス数を集計しようとしてるのですが、正常にうごきません。
日付の比較がおかしくなっている感じがします。

スキーマはこんな感じです。
AccessLog:
 tableName: access_log
 actAs: { Timestampable: ~ }
 columns:
  user_id: varchar(50)
256: nobodyさん [sage] 2010/11/14(日) 03:01:31 ID:??? AAS
コードと同等(と思っている)のSQLをMySqlコマンドラインから実行すると、正常にいきます。

SELECT a.id, a.user_id, COUNT(*), DATE(a.created_at) AS date
FROM access_log a
WHERE (a.user_id = 'admin' AND a.created_at > '2010-11-01 00:00:00' AND a.created_at < '2010-11-29 23:59:59')
GROUP BY date ORDER BY a.created_at;

「->andWhere('a.created_at < ?',$end)」の行を抜かすと一応取得はできます。
原因はなんでしょうか?

$id = 'admin';
$start = "'2011-11-01 00:00:00'";
$end ="'2011-11-30 23:59:59'";

$this->accesslogs = Doctrine_Query::create()
->select('a.user_id, count(*) as count, DATE(a.created_at) as date')
->from('accesslog as a')
->where('a.user_id = ?',$id)
->andWhere('a.created_at > ?',$start)
->andWhere('a.created_at < ?',$end)
->groupBy('date')
->orderBy('a.created_at')
->execute();
257: nobodyさん [sage] 2010/11/14(日) 03:04:05 ID:??? AAS
ついでにfixture.ymlも書いておきます。

AccessLog:
 log1:
  user_id: admin
  created_at: '2010-11-13 21:56:54'
 log2:
  user_id: admin
  created_at: '2010-11-13 21:56:54'
 log3:
  user_id: admin
  created_at: '2010-11-14 21:56:54'
 log4:
  user_id: admin
  created_at: '2010-11-14 21:56:54'
 log5:
  user_id: admin
  created_at: '2010-11-15 21:56:54'
1-
あと 274 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.016s