質問 > フロント機能 > レポジトリを呼び出し取得した配列データへのアクセスでエラー発生 |
フロント機能
スレッド表示 | 古いものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
Mayn |
投稿日時: 2022/4/11 12:25
対応状況: −−−
|
半人前 登録日: 2022/2/7 居住地: 投稿: 14 |
Re: レポジトリを呼び出し取得した配列データへのアクセスでエラー発生 データベースから取得する方法もあるとのこと、ご教示有難うございました。
エラーの件、解決致しました。ご報告遅くなりましたがこちらで共有させて頂きます。 以下記述にてprice02IncTaxsのデータへアクセスすることができましたのでこちらで共有させて頂きます。 {% if products %} {% for p in products %} {{ p.getPrice02IncTaxMin|price }} {% endfor %} {% endif %} |
468 |
投稿日時: 2022/4/7 9:20
対応状況: −−−
|
神 登録日: 2008/10/26 居住地: 投稿: 3217 |
Re: レポジトリを呼び出し取得した配列データへのアクセスでエラー発生 どのようなエラーが発生したのでしょうか?
私はDBからデータを取り出すような処理はコントローラークラスに記述するようにしているので 投稿いただいた記述のどこに問題がある(twig上でrepositoryを使った書き方)のかは判断できません。 お役に立てず申し訳ないです。
|
Mayn |
投稿日時: 2022/4/6 10:52
対応状況: −−−
|
半人前 登録日: 2022/2/7 居住地: 投稿: 14 |
Re: レポジトリを呼び出し取得した配列データへのアクセスでエラー発生 ご教示ありがとうございます。
仰る通り、/src/Eccube/Entity/Product.phpの記述では$price02IncTaxsプロパティはprivateで宣言されておりました。 アドバイス頂いたgetProductClasses()での配列の取得ですが、これは既存のtwigに追加で記載するということではなく、別に処理をするという意味合いでしょうか。以下の処理に書き込みとエラーになってしまい、確認ができませんでした。 {% set Category = repository("Eccube\\Entity\\Category").find(1) %} {% set products = repository("Eccube\\Entity\\Product") .getQueryBuilderBySearchData({'category_id':Category}) .setMaxResults(8) .getQuery() .getResult() %} 理解不足で申し訳ございませんが、よろしくお願いいたします。 |
468 |
投稿日時: 2022/4/5 1:37
対応状況: −−−
|
神 登録日: 2008/10/26 居住地: 投稿: 3217 |
Re: レポジトリを呼び出し取得した配列データへのアクセスでエラー発生 Productクラスのprice02やprice02IncTaxsのプロパティは
privateで宣言されているので直接アクセスする事は出来ないと思います。 (/src/Eccube/Entity/Product.phpの記述を確認してみてください) 該当のプロパティにアクセスできそうなメソッドは function getPrice02Min() function getPrice02Max() function getPrice02IncTaxMin() function getPrice02IncTaxMax() と思いますが、いずれも配列の1つ目にアクセスできるようなものではないようです。 一度、getProductClasses()でProductに紐づくProductClassの配列を取得して 1つ目のProductClassのgetPrice02()を実行すればよいのではないでしょうか? 正常に表示できるかどうかは試していないので分かりませんが {{ p.ProductClasses[0].price02 }} のような書き方で表示できるのではないかと思います。
|
Mayn |
投稿日時: 2022/4/5 0:56
対応状況: −−−
|
半人前 登録日: 2022/2/7 居住地: 投稿: 14 |
レポジトリを呼び出し取得した配列データへのアクセスでエラー発生 ▼テンプレート
[EC-CUBE] 4.1.0 [レンタルサーバ] X-server [OS] Window10 [PHP] 7.4.10 [データベース] MySQL 5.7.32 [WEBサーバ] Apache [ブラウザ] chrom [導入プラグインの有無] あり [カスタマイズの有無] なし [現象] レポジトリを呼び出し取得した配列データへのアクセスでエラー発生 twig上でレポジトリを呼び出し商品データの取得を行い、dump関数を用いてデータの中身をチェックしました。 商品名は {{ p.name }} にて、 メーカー名は {{ p.Maker.name }} で表示することはできましたが、 価格を表示することができず、配列の場合のデータへのアクセス方法について教えて頂きたいです。 基本的なことで恐れ入りますが、ご教示頂きたく宜しくお願い致します。 ◾︎ price02IncTaxs の数値を取得したい ◾︎ 記載したコード:{{ p.price02[0] }} ◾︎ エラー内容:Neither the property "price02IncTaxs" nor one of the methods "price02IncTaxs()", "getprice02IncTaxs()"/"isprice02IncTaxs()"/"hasprice02IncTaxs()" or "__call()" exist and have public access in class "Eccube\Entity\Product". ・レポジトリ呼び出し {% set Category = repository("Eccube\\Entity\\Category").find(1) %} {% set products = repository("Eccube\\Entity\\Product") .getQueryBuilderBySearchData({'category_id':Category}) .setMaxResults(8) .getQuery() .getResult() %} {{ dump(products) }} ・dumpにてデータの中身をチェック(一部省略) array:5 [▼ 0 => Eccube\Entity\Product {#4304 ▼ -_calc: true -stockFinds: array:1 [▼ 0 => true ] -stocks: array:1 [▼ 0 => null ] -price01IncTaxs: [] -price02IncTaxs: array:1 [▼ 0 => 55000.0 ※この価格を取得・表示させたいです。 ] -id: 9 -name: "ROUND NECK" -note: null -description_list: null -Maker: Proxies\__CG__\Plugin\Maker4\Entity\Maker {#5590 ▼ +__isInitialized__: true -id: 5 -name: "VItter" -sort_no: 5 -create_date: DateTime @1648967288 {#5662 ▶} -update_date: DateTime @1648967288 {#5663 ▶} …2 |
スレッド表示 | 古いものから | 前のトピック | 次のトピック | トップ |