質問 > 管理機能 > 新たに追加したMySQLテーブルへのデータ保存 |
管理機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
tomaton20 |
投稿日時: 2023/9/8 15:47
対応状況: 解決済
|
新米 登録日: 2023/9/8 居住地: 投稿: 4 |
新たに追加したMySQLテーブルへのデータ保存 ▼テンプレート
[EC-CUBE] 4.2、新規インストール [レンタルサーバ] レンタルサーバ名 [OS] centos [PHP] 8 [データベース] mariadb 10 [WEBサーバ] apache [ブラウザ] chrome [導入プラグインの有無] なし [カスタマイズの有無] 管理画面に新たにページとフォームを追加 [現象] 追加したフォームから新たに追加したテーブルへ更新をかけたが、更新されない。 EC-CUBEの知識はほぼありません。 検索して色々調べ、それらしいコードを書いたまで、となります。 前提としては、最初に直接追加したカラムに対して、 EC-CUBEから上書き保存させたい、という流れです。 追加したテーブルは、「dtb_list」テーブルで、 変更をかけたいカラムは「text1」です。 また変更対象として、「types」というカラムをwhereで絞り、 更新対象としています。 コードとして、以下の書き方をしました。 エラーは出ないのですが、更新もされない、という状況です。 どなたか助言頂ければ幸いです。 try { $qb = $this->entityManager->createQueryBuilder(); $qb->update()->from(List::class, 'dtb_list') ->set('dtb_list.text1', ':text1') ->where('dtb_list.types = 1') ->setParameter('text1', $post['text1']); $qb->getQuery()->execute(); } catch (Exception $e) { echo '捕捉した例外: ', $e->getMessage(), "\n"; } |
h_tanaka |
投稿日時: 2023/9/8 18:19
対応状況: −−−
|
神 登録日: 2016/7/22 居住地: 愛媛県 投稿: 1850 |
Re: 新たに追加したMySQLテーブルへのデータ保存 EC-CUBE4.2 系のDBへの保存は、 Doctrine の EntityManagerInterface を用いて行われています。
SQL文を書いての更新は試したことがないのでできるかどうかわかりませんし、独自でセキュリティ対策等行わなければならないのであまりお勧めしません。 トランザクションを使えばできるかもしれませんが、できれば既存のページにフォーム項目を追加したいのであれば、 Entity, FormType をカスタマイズしたほうが良いかと思います。 https://doc4.ec-cube.net/customize_formtype
|
tomaton20 |
投稿日時: 2023/9/12 3:01
対応状況: 解決済
|
新米 登録日: 2023/9/8 居住地: 投稿: 4 |
Re: 新たに追加したMySQLテーブルへのデータ保存 自己解決です。
チェックように更新後にexitで止めており、見た目上はエラーが出ていなかったのですが、 プログラム上ではエラーと判断され、ロールバックされて更新を取り消しされていたようです。 そのため、更新が成功しているにも関わらず、DB上では反映されていませんでした。 結果、うまくいっていないと勘違いしていたようです。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |