質問 > フロント機能 > MYSQLのビューをSELECTし値を表示 |
フロント機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
masak0521 |
投稿日時: 2025/6/20 16:02
対応状況: 開発中
|
半人前 ![]() ![]() 登録日: 2025/6/16 居住地: 投稿: 11 |
MYSQLのビューをSELECTし値を表示 ▼テンプレート
[EC-CUBE]4.3 [PHP]8.3 [データベース]MySQL [現象] 商品詳細画面に、MySQLで作成した別VIEW(ここは最悪テーブルでも可です)に対し商品IDをキーに値を取得し、その値をループして一覧表示する方法をお教えください。 現在2系からの移行を行っていて、旧バージョンではLC_Page_Products_DetailにSELECT文を発行しデータを取得するカスタマイズをしてありました。 4系だとEntity、Repositoryを作成しControllerからアクセスするというのが正規のやり方だとは思うのですが… こちらがVIEWの場合どう書いたら良いのか分からないというのもあり、(一旦セキュリティ的なものは置いておいても)SQLの発行からのデータの取得及び取得したデータの画面表示の方法があればお教えいただきたく存じます。 |
h_tanaka |
投稿日時: 2025/6/20 16:07
対応状況: −−−
|
神 ![]() ![]() 登録日: 2016/7/22 居住地: 愛媛県 投稿: 2018 |
Re: MYSQLのビューをSELECTし値を表示 Contoroller で通常のPHPが記述できますし、 Twig でもHTMLが記述できるので、標準的な実装ルールを無視してゴリゴリに旧時代的な実装を行うことは可能ではあります。
CSRFなどのセキュリティ対策が無効になるため、推奨はしません。
|
masak0521 |
投稿日時: 2025/6/20 16:27
対応状況: 開発中
|
半人前 ![]() ![]() 登録日: 2025/6/16 居住地: 投稿: 11 |
Re: MYSQLのビューをSELECTし値を表示 ありががとうございます
そうなのですね・・・ ECCUBE4以降はPHPのベタ書きは不可、、、といった記載をみかけたもので。 追々新しい形式に準拠するように修正するとして、一旦はProductController.phpを「app/Customize/Controller/ProductController.php」にコピーし、そこに旧ソースと同様のSQLを実行し、その値をtwigで表示していくで一応画面表示は可能、ということでよいでしょうか? |
h_tanaka |
投稿日時: 2025/6/20 16:31
対応状況: −−−
|
神 ![]() ![]() 登録日: 2016/7/22 居住地: 愛媛県 投稿: 2018 |
Re: MYSQLのビューをSELECTし値を表示 私も実際に試したことはないので、PHPベタ書きするとなにかしら不具合が出る可能性はあるかもしれません。
一応、可能であると予想していますが、なにか問題があれば、実装内容を記載のうえ、また質問いただければと思います。
|
mcontact |
投稿日時: 2025/6/20 17:21
対応状況: −−−
|
神 ![]() ![]() 登録日: 2022/1/22 居住地: 投稿: 1732 |
Re: MYSQLのビューをSELECTし値を表示 EC-CUBE4(Symfony/Doctrine ORM)にて、生のSQL文の実行は可能です。
下記のサイトあたりを参考にしてみてください。 http://note.onichannn.net/archives/2625 https://blog.okashoi.net/entry/2023/12/09/060000#Doctrine-ORM-%E3%81%AE%E5%A0%B4%E5%90%88
|
masak0521 |
投稿日時: 2025/6/23 14:41
対応状況: −−−
|
半人前 ![]() ![]() 登録日: 2025/6/16 居住地: 投稿: 11 |
Re: MYSQLのビューをSELECTし値を表示 2重投稿のような質問をしてしまい申し訳ありません。
教えていただいた内容を元に下記のように記述したところ、エラーは出ないのですが、twig側でdumpで表示しても配列の中身が空のままとなっているようです。 テーブルには必ずデータがある前提で、下記のおかしい点などがわかりましたらお教えください。 $SQL="SELECT * FROM TEST01"; $rsm = new ResultSetMapping(); $query = $this->entityManager->createNativeQuery($SQL, $rsm); $TEST_List = array(); while($rs = $query->getResult()){ $TEST_List[] = array( "id" => $rs['id'], "data1" => $rs['data1'], "data2" => $rs['data2'], ); } return [ 'TEST_List' => $TEST_List, ]; } |
mcontact |
投稿日時: 2025/6/25 16:57
対応状況: −−−
|
神 ![]() ![]() 登録日: 2022/1/22 居住地: 投稿: 1732 |
Re: MYSQLのビューをSELECTし値を表示 本コミュニティは開発者の相互にサポートするのための開発コミュニティです。
コードレビューを行う場所ではありません。 参考サイトは提示していますので、ご自身で改修したコードをもとに、調査・開発・確認を行ってください。 それでも不明点が出るようであれば、エラーログなど見て開発を進めるか、開発に関して初心者ということでしたら、開発できるレベルまで勉強されるか、御社エンジニアまたはEC-CUBEインテグレートパートナーに相談されることをオススメ致します。 https://www.ec-cube.net/integrate/partner/
|
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |