私的良スレ書庫
不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitterでログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。
元スレsymfony PHPフレームワークpart2
php スレッド一覧へ / php とは? / 携帯版 / dat(gz)で取得 / トップメニューみんなの評価 :
レスフィルター : (試験中)
BaseFormからextendして、DBに何か保存するならsaveメソッドの中で直接何か書きなはれ
sfValidatorSchemaCompare も sfValidatorEmail等 も、バリデート失敗時は「Invalid」が表示されますよね。
普通は国際化して、「入力が正しくありません」などに変えると思います。
新規登録画面でパスワードを2回入力させて、そのチェックに sfValidatorSchemaCompare を使っているので、
失敗時には「入力が正しくありません」じゃなくて「パスワードが一致しません」にしたいんです。
なんとかエラーメッセージを区別できないもんでしょうか?
ソースを見た感じ、"throw_global_error"オプションを設定して、自分でcatchしてハンドリングすればできそうな気もしているのですが
どこでどうハンドリングすればいいのか分かりません。
sfValidatorSchemaCompare.class.phpの117行目の「$error = new sfValidatorError($this, 'invalid', 」の
'invalid'を書き換えればひとまず対処できますが、sfValidatorSchemaCompare を他の用途で使うときに
適切でないエラーメッセージになってしまうので、ソースを直接いじるのは遠慮したいです。
どのように対処すればよいでしょうか?
普通は国際化して、「入力が正しくありません」などに変えると思います。
新規登録画面でパスワードを2回入力させて、そのチェックに sfValidatorSchemaCompare を使っているので、
失敗時には「入力が正しくありません」じゃなくて「パスワードが一致しません」にしたいんです。
なんとかエラーメッセージを区別できないもんでしょうか?
ソースを見た感じ、"throw_global_error"オプションを設定して、自分でcatchしてハンドリングすればできそうな気もしているのですが
どこでどうハンドリングすればいいのか分かりません。
sfValidatorSchemaCompare.class.phpの117行目の「$error = new sfValidatorError($this, 'invalid', 」の
'invalid'を書き換えればひとまず対処できますが、sfValidatorSchemaCompare を他の用途で使うときに
適切でないエラーメッセージになってしまうので、ソースを直接いじるのは遠慮したいです。
どのように対処すればよいでしょうか?
コンストラクタの$messageで変更できました。
長々と失礼しました。
長々と失礼しました。
Eclipseでやると、別窓でコマンド叩く用のシェルと自前のチートシートをエディタで開いてないとダメで、
スキーマ書き換えると、lib下やらをリフレッシュしないといけないから
毎度毎度面倒なんだよね。
スキーマ書き換えると、lib下やらをリフレッシュしないといけないから
毎度毎度面倒なんだよね。
ExternalToolsはリフレッシュもしてくれるんだねぇ。便利。
php symfony doctrine:build --all --and-load --no-confirmation
php symfony doctrine:data-load
php symfony cc
このへんはいけるけど、
symfony generate:module frontend hoge
なんかは対応できないよね?
スレチだけど。
php symfony doctrine:build --all --and-load --no-confirmation
php symfony doctrine:data-load
php symfony cc
このへんはいけるけど、
symfony generate:module frontend hoge
なんかは対応できないよね?
スレチだけど。
>>210
${string_prompt}
${string_prompt}
自前で簡易キャッシュ機構作りたいんですけど、
レイアウト有り/無しのhtmlをファイルに保存するにはどうしたらいいですか?
wgetで取って保存、ってのは無しでお願いします。
レイアウト有り/無しのhtmlをファイルに保存するにはどうしたらいいですか?
wgetで取って保存、ってのは無しでお願いします。
いや、ヒントだけでよかったんだよ。
いま開発環境ないPCだけど、Renderフィルター覗けばなんか分かりそうな気がしてきた。
いま開発環境ないPCだけど、Renderフィルター覗けばなんか分かりそうな気がしてきた。
forward404Unless()で404エラーページに飛んだとき、
prod環境でも第2引数を画面に表示するにはどうすればいい?
prod環境でも第2引数を画面に表示するにはどうすればいい?
初心者ですいません。
Table:
columns:
id:
name:
のように定義した状態で、
executeCreate内でnameフォームの値を取得するのに「$request->getParameter('name')」や「$form['name']->getValue()」
としてみたのですが、値が取得できません。
フォームの値を取り出すにはどのようにやればいいのでしょうか?
Table:
columns:
id:
name:
のように定義した状態で、
executeCreate内でnameフォームの値を取得するのに「$request->getParameter('name')」や「$form['name']->getValue()」
としてみたのですが、値が取得できません。
フォームの値を取り出すにはどのようにやればいいのでしょうか?
$requestArray = $request->getParameter($form->getName());
$requestArray['name']
で取得できたんですけど、毎回こうやらないとダメなんでしょうか(汗)
$requestArray['name']
で取得できたんですけど、毎回こうやらないとダメなんでしょうか(汗)
leftJoin時のSQL発行回数について質問です。
SQL1回の発行で済ませて欲しいのに、2回実行されているようです。
なぜでしょうか?
#schema.yml
User:
columns:
id:
name:
Thread:
local: id
foreign: user_id
type: many
Thread:
columns:
id:
user_id:
relations:
User:
local: user_id
foreign: id
type: one
SQL1回の発行で済ませて欲しいのに、2回実行されているようです。
なぜでしょうか?
#schema.yml
User:
columns:
id:
name:
Thread:
local: id
foreign: user_id
type: many
Thread:
columns:
id:
user_id:
relations:
User:
local: user_id
foreign: id
type: one
#action.class.php
public function executeIndex(sfWebRequest $request)
{
$this->thread = Doctrine_Core::getTable('thread')
->createQuery('t')
->where('t.id',$request->getParameter('id'))
->leftJoin('t.User u')
->execute();
}
#indexSuccess.php
お名前は<?php echo $thread->getUser()->getName() ?>
似たような話題で、http://blog.asial.co.jp/591 も見てみたのですが、
バージョン違いなのか全く動きませんでした。
public function executeIndex(sfWebRequest $request)
{
$this->thread = Doctrine_Core::getTable('thread')
->createQuery('t')
->where('t.id',$request->getParameter('id'))
->leftJoin('t.User u')
->execute();
}
#indexSuccess.php
お名前は<?php echo $thread->getUser()->getName() ?>
似たような話題で、http://blog.asial.co.jp/591 も見てみたのですが、
バージョン違いなのか全く動きませんでした。
>>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();
に変えたらどう?
$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();
に変えたらどう?
fetchOne()に変えて、$thread['User']['name'] で取得できました!
SQLも新しく発行されていないようです。
ただ、$thread->getId() の構文が使えなくて $thread['id'] に全部書き換えないといけませんけど><
SQLも新しく発行されていないようです。
ただ、$thread->getId() の構文が使えなくて $thread['id'] に全部書き換えないといけませんけど><
サンプルに合わせて言い方変えちゃいましたけど、
実際はfetchArray()で取得して、foreach()でループさせました。
とりあえずうまく行ったようです。
実際はfetchArray()で取得して、foreach()でループさせました。
とりあえずうまく行ったようです。
$form->isValid()に失敗したとき、失敗の内容はどうやって取得できますか?
具体的には、CSRFチェックに引っかかったとき、自動的にhoge/newにリダイレクトさせたいんです。
具体的には、CSRFチェックに引っかかったとき、自動的にhoge/newにリダイレクトさせたいんです。
>>226
myUserの初期化メソッドで通常の処理の後にIDみて強制ログアウトする処理を足す。
myUserの初期化メソッドで通常の処理の後にIDみて強制ログアウトする処理を足す。
>>227
すいません、そうゆう意味じゃないです。
たとえば、管理者が荒らし行為真っ最中のユーザーを見つけたら、
そいつのセッションやらクレデンシャルやらをクリアしてログアウトさせることをイメージしてました。
セッションにユーザーIDを入れておき、
全セッションファイルをトラバースして、
「id|i:(\d)+:123;」みたいにマッチしたファイルを削除すればいいかな?
symfony関係なくなっちゃうけど。。。
すいません、そうゆう意味じゃないです。
たとえば、管理者が荒らし行為真っ最中のユーザーを見つけたら、
そいつのセッションやらクレデンシャルやらをクリアしてログアウトさせることをイメージしてました。
セッションにユーザーIDを入れておき、
全セッションファイルをトラバースして、
「id|i:(\d)+:123;」みたいにマッチしたファイルを削除すればいいかな?
symfony関係なくなっちゃうけど。。。
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");
結果、日付の区別無しに、ログの総数が返ります。
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");
結果、日付の区別無しに、ログの総数が返ります。
恥ずかしいミスした!
DoctrineCorectionは、DoctrineCollectionの間違いでした^^;
DoctrineCorectionは、DoctrineCollectionの間違いでした^^;
>>228
それならis_active int(1)とかでフラグ項目をDBのユーザーテーブルに持たせておいて、公開側では
myUserの初期化で$dbuser->getIsActive()の値を調べて強制ログアウトさせればいいんじゃない?
強制ログアウトさせたいユーザーは、管理者が裏画面からis_activeの値を更新して強制ログアウト側に
落とす。
username password is_active
それならis_active int(1)とかでフラグ項目をDBのユーザーテーブルに持たせておいて、公開側では
myUserの初期化で$dbuser->getIsActive()の値を調べて強制ログアウトさせればいいんじゃない?
強制ログアウトさせたいユーザーは、管理者が裏画面からis_activeの値を更新して強制ログアウト側に
落とす。
username password is_active
ごめん、途中送信。
username password is_active
testuser ****** 1 ⇒ログインできる
nguser ****** 0 ⇒ログインできない&強制ログアウト
username password is_active
testuser ****** 1 ⇒ログインできる
nguser ****** 0 ⇒ログインできない&強制ログアウト
myUserにコンストラクタ定義すると、深い迷路に迷い込めそうな予感。。。
ちょっと語弊がありました。
グループ化された日付が1つだけの場合、グループ化されていないままのレコード総数が返ります。
日付が複数の場合、正しい値が返ります。
グループ化された日付が1つだけの場合、グループ化されていないままのレコード総数が返ります。
日付が複数の場合、正しい値が返ります。
分かったら当たり前だけど、myUserのコンストラクタは
public function __construct(sfEventDispatcher $dispatcher, sfStorage $storage, $options = array())
{
parent::__construct($dispatcher, $storage, $options);
}
って書かないとダメなのね。__construct()とだけ書いてちょっと泥沼になった。
public function __construct(sfEventDispatcher $dispatcher, sfStorage $storage, $options = array())
{
parent::__construct($dispatcher, $storage, $options);
}
って書かないとダメなのね。__construct()とだけ書いてちょっと泥沼になった。
テンプレート内でvar_dump()すると、指定した変数以外もすんごい量がダンプされるんですけど
$thisとかも見に行ってるんですか??
$thisとかも見に行ってるんですか??
>>236
変数といってもDoctrine_Recordのオブジェクトが入ってる変数だったらものすごい量でて当たり前。
変数といってもDoctrine_Recordのオブジェクトが入ってる変数だったらものすごい量でて当たり前。
>>239
認証とセッションデータをごっちゃにするなよ
認証とセッションデータをごっちゃにするなよ
認証情報はセッションに入ってるものだと思ってました。
認証情報はどこに保存されているんでしょう??
認証情報はどこに保存されているんでしょう??
セッション(認証?)が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
以下の設定だけでは、変更できないんでしょうか?
#.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
factories.ymlに書くんだと思う
user:
class: myUser
param:
timeout: 86400
こんな感じ
user:
class: myUser
param:
timeout: 86400
こんな感じ
類似してるかもしれないスレッド
- [PHPフレームワーク]Laravel (995) - [60%] - 2017/7/22 11:45
- 【PHP】フレームワーク Akelos (129) - [51%] - 2019/5/9 7:46
- 【PHP】フレームワークPharonスレ (306) - [46%] - 2022/10/10 20:00
- 【PHP】PHPフレームワーク総合スレ14 (1001) - [45%] - 2010/12/11 10:32
- 【PHP】PHPフレームワーク総合スレ15 (989) - [45%] - 2013/9/27 6:00 △
- [PHP][フレームワーク]CodeIgniter Part2 (983) - [41%] - 2015/4/7 12:46
トップメニューへ / →のくす牧場書庫について