バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

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

管理機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
fo-ji
投稿日時: 2021/3/25 17:31
対応状況: −−−
新米
登録日: 2020/12/11
居住地:
投稿: 6
新しく追加したカラムの値が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
居住地: 東京日本橋
投稿: 2006
Re: 新しく追加したカラムの値がcsvで出力できない
上記の記事で出力可能ですね。
dtb_csvテーブルに登録した下記のいずれかのカラムの登録内容に誤りが
あるのではないかと推察されます。

"entity_name"
"field_name"
"reference_field_name"


----------------
EC-CUBE4系 カスタマイズ ECのプロがシステム急ぎの案件承ります。
EC-CUBE開発 リモートで働くエンジニア募集中

fo-ji
投稿日時: 2021/3/26 10:29
対応状況: 確認中
新米
登録日: 2020/12/11
居住地:
投稿: 6
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
居住地: 東京日本橋
投稿: 2006
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
居住地:
投稿: 6
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
居住地: 東京日本橋
投稿: 2006
Re: 新しく追加したカラムの値がcsvで出力できない
あ、下記プロパティのゲッターメソッドないと出力されないかもしれないです。
public $ordering_unit;

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

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

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

public $hogehoge;


----------------
EC-CUBE4系 カスタマイズ ECのプロがシステム急ぎの案件承ります。
EC-CUBE開発 リモートで働くエンジニア募集中

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


 



ログイン


EC-CUBEペイメント

公式ストアEC-CUBE4系デザインテンプレート続々リリース中

統計情報

総メンバー数は71,640名です
総投稿数は101,383件です

投稿数ランキング

1
seasoft
7333
2
468
2999
3
AMUAMU
2712
4
nanasess
2147
5
umebius
2006
6
yuh
1612
7
red
1450
8
h_tanaka
1080
9
tsuji
936
10
fukap
907
11
shutta
835
12
tao_s
793
13 ramrun 789
14 karin 689
15 sumida 641
16
homan
633
17 DELIGHT 572
18
patapata
502
19
flealog
485
20 tonton 437


ネットショップの壺

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

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