前回の記事の解説
出題したタスクはこちら
タスク②画面上に表示文言を追加する
〜DBに保存されたデータを取得し、画面上に表示しよう〜
タスクの見通しとしては、
1.表示箇所の特定
2.表示するデータがデータベースから取得されているか確かめる(ない場合は取得する)
3.上記のデータを対象箇所に表示する
といった手順になる。
タスク①の要領でまずは表示すべき箇所を見つけることから始める。
①で使用したlist.twigを少しスクロールするとカートに入れるボタンの箇所があるのでそのすぐ上が表示箇所となる。
次にlist.twigの商品情報を表示している箇所を見るとProduct.hogehogeのようにして表示していることがわかる。(nameを表示している箇所はProduct.name)
Productの定義箇所を見ると145行目あたりに
{% for Product in pagination %}
とあることからpaginagionという変数(配列)を展開して表示していることがわかるため、controllerでpagenationを返している部分を確認する。
ProductController.phpのindex()が対象箇所となるため、このfunctionのreturn部分を確認する。(このreturnのpagenationがtwig側に渡っているため)
https://gyazo.com/94a3af4709d2dc5623f05fec1e15b87a
symfonyではdumpを使って変数の中身を確認できるためこちらを使ってブラウザを確認します。
ブラウザに表示してみたところitemsの配列を展開するとProductの情報が入っていることが確認できます。
こちらにdescription_detailという項目があるのでこちらを詳細画面に表示すればいいことになります。
もし、ここに入っていなかった場合はデータベースからデータを取得している部分の条件を変えて値が渡ってくるように改修するようなタスクになります。
表示すべき項目が判明したため、先程見つけた対象箇所にコードを記述します。
以上です。ブラウザを確認すると商品詳細情報が表示されました。
今回のタスクとしてはデータを取得できているか確認、表示という流れでした。
変数の中身を確認するデバッグ用のdump()はよく使います。
フレームワークによっても違いますが、実務タスクでは値が正しく取れているかなどの確認に
よく使うので使いこなせるようになるといいでしょう。