symfony PHPフレームワークpart2 (531レス)
symfony PHPフレームワークpart2 http://medaka.5ch.net/test/read.cgi/php/1268753684/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
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
246: nobodyさん [] 2010/11/04(木) 18:06:43 ID:kCotlNfK ファイルアップロードで、ファイル名の「'」が「\'」になるんですけど これってSymfonyの問題ですか? PHPも初心者なもんでどうすればいいのか分かりません。。。 http://medaka.5ch.net/test/read.cgi/php/1268753684/246
247: nobodyさん [sage] 2010/11/06(土) 13:24:52 ID:??? 問題があるとしたらファイル名に「'」を使ってることかな http://medaka.5ch.net/test/read.cgi/php/1268753684/247
248: nobodyさん [sage] 2010/11/07(日) 05:37:42 ID:??? php初心者というかパソコン初心者レベルだな http://medaka.5ch.net/test/read.cgi/php/1268753684/248
249: nobodyさん [sage] 2010/11/08(月) 03:03:57 ID:??? セッション(認証?)が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 http://medaka.5ch.net/test/read.cgi/php/1268753684/249
250: nobodyさん [sage] 2010/11/08(月) 20:05:11 ID:??? factories.ymlに書くんだと思う user: class: myUser param: timeout: 86400 こんな感じ http://medaka.5ch.net/test/read.cgi/php/1268753684/250
251: nobodyさん [sage] 2010/11/09(火) 20:43:10 ID:??? さんくす! http://medaka.5ch.net/test/read.cgi/php/1268753684/251
252: nobodyさん [sage] 2010/11/13(土) 05:16:41 ID:??? 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を作ると治るという情報があったのですが 治りませんでした。他に解決方法はありませんでしょうか? http://medaka.5ch.net/test/read.cgi/php/1268753684/252
253: nobodyさん [sage] 2010/11/13(土) 07:15:40 ID:??? >>252 credentails: [admin] じゃなくて? sfDoctrineGuardPlugin使ったことないからよくしらんけど http://medaka.5ch.net/test/read.cgi/php/1268753684/253
254: 252 [sage] 2010/11/13(土) 21:33:07 ID:??? 「Notice: Undefined offset: 1」のエラーのほうは、 http://www.symfony-project.org/blog/2008/11/12/call-the-expert-customizing-sfdoctrineguardplugin を参考にしたAPP/congig/generator.ymlの変更をやめて、 中身を全部削除したらうまくいったみたい。 http://medaka.5ch.net/test/read.cgi/php/1268753684/254
255: nobodyさん [sage] 2010/11/14(日) 02:59:13 ID:??? 日別のアクセス数を集計しようとしてるのですが、正常にうごきません。 日付の比較がおかしくなっている感じがします。 スキーマはこんな感じです。 AccessLog: tableName: access_log actAs: { Timestampable: ~ } columns: user_id: varchar(50) http://medaka.5ch.net/test/read.cgi/php/1268753684/255
256: nobodyさん [sage] 2010/11/14(日) 03:01:31 ID:??? コードと同等(と思っている)の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(); http://medaka.5ch.net/test/read.cgi/php/1268753684/256
257: nobodyさん [sage] 2010/11/14(日) 03:04:05 ID:??? ついでに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' http://medaka.5ch.net/test/read.cgi/php/1268753684/257
258: nobodyさん [sage] 2010/11/14(日) 19:32:35 ID:??? (たぶん)解決しました。 ->from('accesslog as a') じゃなくて ->from('accesslog a') に変えると期待通りに動きました^^; 夜中3時間悩んだのに、昼に起きて5分で解決しました。 休憩や睡眠って大事ですね。みなさんもがんばってください。 なんで$endの行が無いときにうまくいったかは謎のままですが。。。 http://medaka.5ch.net/test/read.cgi/php/1268753684/258
259: nobodyさん [sage] 2010/11/14(日) 23:36:38 ID:??? sfDoctrineGuardPluginって使ってる人いる?? symfony慣れてないくせして導入してみたんだけど、symfonyとバージョン合ってないのかな? sfGuardRememberMeFilterが機能してない気がする。 settings.ymlで enabled_modules: [default, sfGuardGroup, sfGuardUser, sfGuardPermission, sfGuardAuth, sfGuardForgotPassword] を記述しても、バックエンドに追加されてない。 sfGuardUserは手動でバックエンドに追加できるけど、sfGuardPermissionは足りないファイルがたんまり。ネットで拾ってきてもまともに動かない。 あと、save-fixtureしてリロードすると、パスワードがハッシュされてログインできなくなる。 このあたり、どうにかなりませんか? http://medaka.5ch.net/test/read.cgi/php/1268753684/259
260: nobodyさん [] 2010/11/15(月) 21:25:47 ID:WH+q5o59 こうゆう複雑なSQLはDoctrineでできますか? Doctrineは単純なSQLだけで、複雑な合成はPHPでやったほうがいいのかな。 SELECT u.id as u__id, u.username as u__username, s.date as s__date, a.access as a__access, s.sales as s__sales FROM sf_guard_user u LEFT OUTER JOIN (SELECT user_id, DATE(created_at) AS date, SUM(amount) AS sales FROM sales GROUP BY user_id, DATE(created_at)) s ON u.username = s.user_id LEFT OUTER JOIN (SELECT user_id, DATE(created_at) AS date, count(*) AS access FROM access_log GROUP BY user_id, DATE(created_at)) a ON u.username = a.user_id AND s.date = a.date WHERE u.username = 'admin' AND s.date > '2010-11-01 00:00:00' AND s.date < '2010-12-01 00:00:00' ORDER BY s.date; http://medaka.5ch.net/test/read.cgi/php/1268753684/260
261: nobodyさん [sage] 2010/11/15(月) 23:40:15 ID:??? これ、どうゆう意味ですか? > 500 | Internal Server Error | Doctrine_Query_Exception > The root class of the query (alias s) must have at least one field selected. ユーザー毎の売上げを集計したいだけなんだけど。。。 #action.php public function executeSalelist(sfWebRequest $request) { $this->saless = Doctrine_Query::create() ->select('s.user_id as id, p.name, sum(s.amount) as amount') ->from('Sales s') ->leftJoin('s.Profile p') ->groupBy('id') ->execute(); } http://medaka.5ch.net/test/read.cgi/php/1268753684/261
262: 261 [sage] 2010/11/15(月) 23:41:34 ID:??? #schema.yml Sales: tableName: sales actAs: { Timestampable: ~ } columns: user_id: type: integer amount: integer relations: User: class: sfGuardUser foreign: id local: user_id type: many onDelete: cascade foreignType: many foreignAlias: Sales Profile: class: sfGuardUserProfile foreign: user_id local: user_id type: many onDelete: cascade foreignType: many foreignAlias: Sales http://medaka.5ch.net/test/read.cgi/php/1268753684/262
263: nobodyさん [sage] 2010/11/16(火) 03:02:08 ID:??? sfGuardPluginついでに。 > $this->setWidget('user_id', new sfWidgetFormDoctrineChoice(array('model' => $this->getRelatedModelName('User')))); フォームのプルダウンでuser_id=0のアカウントを選択してポストすると、 user_id=1として格納されてしまいます。 なんで〜?? http://medaka.5ch.net/test/read.cgi/php/1268753684/263
264: nobodyさん [sage] 2010/11/16(火) 03:53:30 ID:??? user_idをauto_incrimentにしてない? http://medaka.5ch.net/test/read.cgi/php/1268753684/264
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 267 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.898s*