質問 > フロント機能 > 【質問】DBから値を取得してソース内で使用したい。 |
フロント機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
minion |
投稿日時: 2017/8/24 13:41
対応状況: 開発中
|
新米 登録日: 2017/8/17 居住地: 投稿: 3 |
【質問】DBから値を取得してソース内で使用したい。 [EC-CUBE] 3.0.14、新規インストール
[レンタルサーバ] エックスサーバー [OS] macOS Sierra 10.12.4 [PHP] 7.0.18 [データベース] MySQL 5.7.17 [WEBサーバ] Apache [ブラウザ] google chrome [導入プラグインの有無] なし [カスタマイズの有無] 主に項目名変更、画像サイズの変更など [テンプレート] デフォルト [現象] 題名の通り、カスタマイズするにあたって、dbから値を取得しif文などで使用したいのですが、記述方法がわかりません。 記述方法やどのソースを見ればわかるかなど教えていただけませんでしょうか。 よろしくお願いいたします。 |
468 |
投稿日時: 2017/8/29 13:18
対応状況: −−−
|
神 登録日: 2008/10/26 居住地: 投稿: 3217 |
Re: 【質問】DBから値を取得してソース内で使用したい。 データをDBから取り出して、画面に表示するまでの流れは、商品詳細ページが分かりやすいのではないでしょうか?
\src\Eccube\Controller\ProductController.php \src\Eccube\Resource\template\default\Product\detail.twig 詳細は、symfony2(doctrine、twig)の理解が必要かと思いますが、 ざっくりとした流れは、商品詳細ページにアクセスした時、 http://******/products/detail/2 ↓ ProductController.php 202行目 ProductController.phpのpublic function detail($app, ,$request, $id)を呼び出し ※$idはURLの最後の2がセットされる ↓ ProductController.php 210行目 $Product = $app['eccube.repository.product']->get($id); ※ここで$idを基にProduct関連のデータを取得 ↓ ProductController.php 315行目 return $app->render('Product/detail.twig', array( 'title' => $this->title, 'subtitle' => $Product->getName(), 'form' => $form->createView(), 'Product' => $Product, 'is_favorite' => $is_favorite, )); ここでdetail.twigにProductという名前で$Productを渡す ↓ detail.twig 128行目 <h3 id="detail_description_box__name" class="item_name">{{ Product.name }}</h3> ※{{ Product.name }}で商品名を表示 データベースから取り出したデータは、Entityクラスになりますので、 \src\Eccube\Entity\以下のファイルを見ていただく事になるかと思います。 $Productは、\src\Eccube\Entity\Product.phpになります。 twig上で{{ Product.name }}と記述すると、 586行目のfunction getName()が実行されます。
|
minion |
投稿日時: 2018/1/8 5:08
対応状況: 解決済
|
新米 登録日: 2017/8/17 居住地: 投稿: 3 |
Re: 【質問】DBから値を取得してソース内で使用したい。 標準ソースではorderやproductが取得できないページだったため、Controllerを修正して対応できました。
時間はかかりましたが、流れが見えたので大きなヒントになりました! ものすごく丁寧に教えていただき、ありがとうございます。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |