-
Notifications
You must be signed in to change notification settings - Fork 653
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
注文手続でフォームエラーが返ると fatal error となる不具合を修正 #5345
注文手続でフォームエラーが返ると fatal error となる不具合を修正 #5345
Conversation
Codecov Report
@@ Coverage Diff @@
## 4.1 #5345 +/- ##
============================================
- Coverage 68.60% 68.58% -0.02%
- Complexity 6159 6162 +3
============================================
Files 463 463
Lines 25285 25299 +14
============================================
+ Hits 17346 17351 +5
- Misses 7939 7948 +9
Flags with carried forward coverage won't be shown. Click here to find out more.
Continue to review full report at Codecov.
|
// FIXME @Templateの差し替え. | ||
$request->attributes->set('_template', new Template(['template' => 'Shopping/index.twig'])); | ||
$template = new Template([ | ||
'owner' => [self::class, 'confirm'], |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@pineray
このownerパラメータってなんですか?
ドキュメント等あれば教えていただければと。
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@chihiro-adachi
そのテンプレートがどのコントローラーのアクションから呼び出されているかを示すもののようです。
$request の attributes パラメーターに直接セットすることが一般的な使い方ではないようで、ざっと探してみてもドキュメントが見当たりません
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
なるほど。ありがとうございます。
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
処理によってテンプレートを変えるなら @Template
使わずに、render メソッド使う方法に変えてしまっていいと思います。
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
なるほど。。
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@pineray
ownerパラメータですが、利用箇所を追ってみると、\ReflectionObjectに渡されていました。
self::class
ではなく、$this
オブジェクトで渡してあげるのが良さそうです。
https://github.com/sensiolabs/SensioFrameworkExtraBundle/blob/7fd1d54c1b27f094a68ae15a99b7fc815857255f/src/EventListener/TemplateListener.php#L99
https://github.com/sensiolabs/SensioFrameworkExtraBundle/blob/7fd1d54c1b27f094a68ae15a99b7fc815857255f/src/EventListener/TemplateListener.php#L144
@pineray |
@chihiro-adachi |
|
@pineray |
// FIXME @Templateの差し替え. | ||
$request->attributes->set('_template', new Template(['template' => 'Shopping/index.twig'])); | ||
$template = new Template([ | ||
'owner' => [self::class, 'confirm'], |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@pineray
ownerパラメータですが、利用箇所を追ってみると、\ReflectionObjectに渡されていました。
self::class
ではなく、$this
オブジェクトで渡してあげるのが良さそうです。
https://github.com/sensiolabs/SensioFrameworkExtraBundle/blob/7fd1d54c1b27f094a68ae15a99b7fc815857255f/src/EventListener/TemplateListener.php#L99
https://github.com/sensiolabs/SensioFrameworkExtraBundle/blob/7fd1d54c1b27f094a68ae15a99b7fc815857255f/src/EventListener/TemplateListener.php#L144
@pineray |
概要(Overview・Refs Issue)
注文手続きのフォームでエラーが返ると fatal error となる。
ShoppingController の confirm アクションでは、フォームエラーの場合にテンプレートを差し替えてフォームを表示するよう意図されているが、パラメーターが不十分なためにエラーとなっている。
方針(Policy)
エラーとなっている箇所で必要とされているパラメーターを、テンプレート差し替えの際に提供する。
実装に関する補足(Appendix)
注文手続きで「お問い合わせ」欄に3,001文字以上入力して送信すると再現できます。
マイナーバージョン互換性保持のための制限事項チェックリスト
レビュワー確認項目