バージョン選択

フォーラム

メニュー

オンライン状況

78 人のユーザが現在オンラインです。 (65 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 78
もっと...

サイト内検索

質問 > 管理機能 > 新しく追加したカラムの値がcsvで出力できない

管理機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
fo-ji
投稿日時: 2021/3/25 17:31
対応状況: −−−
新米
登録日: 2020/12/11
居住地:
投稿: 9
新しく追加したカラムの値がcsvで出力できない
[EC-CUBE]
ver 4.0.5

[現象]
商品エンティティに新しくカラムを追加しました。
(ProductTrait.phpを作成し、FormAppendで挿入)
データが問題なく登録できていることも確認しております。

調べたところ、そのままだとcsvには出力できないことが分かり、以下の記事を参考に、カラム名など任意のものに変更し、実装いたしました。
https://qiita.com/seiyaan/items/3ff88e789eca7a8e7f1b

csvを出力したところ項目は追加されましたが、データの値は出力されませんでした。

[質問]
値を出力する為には、上記の記事で実装していること以外に実装する必要はございますでしょうか?
umebius
投稿日時: 2021/3/25 23:31
対応状況: −−−
登録日: 2016/7/22
居住地:
投稿: 2085
Re: 新しく追加したカラムの値がcsvで出力できない
上記の記事で出力可能ですね。
dtb_csvテーブルに登録した下記のいずれかのカラムの登録内容に誤りが
あるのではないかと推察されます。

"entity_name"
"field_name"
"reference_field_name"


----------------
EC-CUBEカスタマイズ・高速化・脆弱性対策・SEO ご相談ください。

2系・3系から4系へのバージョンアップ実績豊富

fo-ji
投稿日時: 2021/3/26 10:29
対応状況: 確認中
新米
登録日: 2020/12/11
居住地:
投稿: 9
Re: 新しく追加したカラムの値がcsvで出力できない
ご回答有難うございます!

現在以下のように登録しておりますが、どこを修正するべきでしょうか?

(Version20210325152200.php)
$arr_insert_csv = [
[
"csv_type" => $this->CsvType["Product"],
"entity_name" => "Eccube\\Entity\\Product",
"disp_name" => "発注時単位",
"field_name" => "ordering_unit",
"reference_field_name" => null,
"enabled" => true
],
// 以下も同様に登録している為省略
];

(ProductTrait.php)
<?php

namespace Customize\Entity;

use Doctrine\ORM\Mapping as ORM;
use Eccube\Annotation\EntityExtension;
/**
* @EntityExtension("Eccube\Entity\Product")
*/
trait ProductTrait
{
/**
* @var string
* @ORM\Column(name="ordering_unit", type="string", nullable=true)
* @Eccube\Annotation\FormAppend(
* auto_render=true,
* options={
* "required": true,
* "label":"発注時単位"
* }
* )
*/
public $ordering_unit;
}
umebius
投稿日時: 2021/3/26 12:31
対応状況: −−−
登録日: 2016/7/22
居住地:
投稿: 2085
Re: 新しく追加したカラムの値がcsvで出力できない
データベースのdtb_csvテーブルを確認し、どちらか判断できますか?
1. dtb_csvテーブルにこの通りに登録されていない
2. dtb_csvテーブルにこの通りに登録されているがCSVに値が出力されない

引用:
"csv_type" => $this->CsvType["Product"],
"entity_name" => "Eccube\\Entity\\Product",
"disp_name" => "発注時単位",
"field_name" => "ordering_unit",
"reference_field_name" => null,
"enabled" => true


判断が難しい場合は、dtb_csvテーブルのそれらしいレコードの登録内容を記載お願いします。
fo-ji
投稿日時: 2021/3/26 12:55
対応状況: 確認中
新米
登録日: 2020/12/11
居住地:
投稿: 9
Re: 新しく追加したカラムの値がcsvで出力できない
おそらく2だと思いますが、お手数ですが、レコードのキャプチャを添付いたしますのでご確認いただけますでしょうか?

maker_nameの他に合計4項目の追加を予定しています。

また、downさせずにマイグレーションを3度実行している為、データが重複してしまっております。

(dtv_csvテーブル)
https://i.gyazo.com/fe7e9be5dc3f07d118ad297bc47953e5.png
umebius
投稿日時: 2021/3/26 13:13
対応状況: −−−
登録日: 2016/7/22
居住地:
投稿: 2085
Re: 新しく追加したカラムの値がcsvで出力できない
あ、下記プロパティのゲッターメソッドないと出力されないかもしれないです。
public $ordering_unit;

下記をProductTraitに書いて試してみてもらえますか?

public function getOrderingUnit()
    {
        return $this->ordering_unit;
    }
fo-ji
投稿日時: 2021/3/26 13:57
対応状況: 解決済
新米
登録日: 2020/12/11
居住地:
投稿: 9
Re: 新しく追加したカラムの値がcsvで出力できない
ご教授いただいた通り記述を加えたところ、出力することができました!

とても助かりました。
有難うございます!!
umebius
投稿日時: 2021/3/26 19:37
対応状況: −−−
登録日: 2016/7/22
居住地:
投稿: 2085
Re: 新しく追加したカラムの値がcsvで出力できない
1度で気づけず申し訳ございません。
公式ドキュメントにもTraitを使ってpublicでプロパティ追加する方法が紹介されていたと思いますですが、これだけだとCSV出力ができないのでゲッターが必要ということですね。

public $hogehoge;


----------------
EC-CUBEカスタマイズ・高速化・脆弱性対策・SEO ご相談ください。

2系・3系から4系へのバージョンアップ実績豊富

スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,292名です
総投稿数は109,691件です

投稿数ランキング

1
seasoft
7365
2
468
3217
3
AMUAMU
2712
4
nanasess
2303
5
umebius
2085
6
yuh
1818
7
h_tanaka
1610
8
red
1568
9
mcontact
1240
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
796
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.