バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > 管理機能 > 顧客情報編集画面に追加項目を表示したい

管理機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
immat
投稿日時: 2020/10/27 20:17
対応状況: −−−
半人前
登録日: 2020/9/2
居住地:
投稿: 14
顧客情報編集画面に追加項目を表示したい
[EC-CUBE] 4.0.4、新規インストール
[レンタルサーバ] Linux 814af0a8241e 4.19.76-linuxkit #1 SMP Tue May 26 11:42:35 UTC 2020 x86_64
[PHP] 7.3.21
[データベース] MySQL5.7.31
[WEBサーバ] Apache/2.4.25 (Debian)
[ブラウザ] Chrome
[導入プラグインの有無] Stripe 決済プラグイン EC-CUBE 4 (カード決済、Apple Pay、Google Pay)/商品レビュー管理プラグイン
[カスタマイズの有無] 有、会員種別(個人・法人)の追加、帳票追加(注文書)
[現象]
カスタマイズで、個人・法人会員をtwig等を分けて新規登録させ、個人にはすでに登録されている法人会員の会社(デフォルトのconpanyとは別)+部署名を「職場」としてプルダウンから登録させています。

この「職場」情報を管理画面の顧客詳細にも表示させたいのですが、
\app\template\admin\Customer\edit.twig(管理画面)に性別や生年月日等の項目同様、「職場」を表示しようと
{{ form_widget(form.office) }} 等の記述を入れると、「officeが存在しません」とエラーになります。

他担当者が作成しており、会員のマイページでは登録した「職場」が表示されております。

会社名・部署名はCustomerに新しくカラムを作っており、「職場」は、登録時に選択した会社・部署名をOffice_id(=customer_id)として持たせています。

--------エラー内容------------
Neither the property "office" nor one of the methods "office()", "getoffice()"/"isoffice()"/"hasoffice()" or "__call()" exist and have public access in class "Symfony\Component\Form\FormView".
--------エラー内容------------

app\Customize\Entity\CustomerTrait.php にはofficeのsetter,getterもある様ですし、
app\Customize\Form\Extension\Front\EntryIndivisualTypeExtension.php(カスタマイズ時に作成)にはフォームビルダーもありました。
-----------------------------------------------------------------------------------------------------
ec-cube\src\Eccube\Controller\Mypage\ChangeController.php (現在職場を表示している顧客マイページ編集画面のコントローラ)
ec-cube\src\Eccube\Controller\Admin\Customer\CustomerEditController.php (管理の顧客編集画面のコントローラ)

上記を見比べてみた所、
$Customer = $this->getUser();
$Customer = $this->customerRepository->find($id);

この辺りの記述が違う様ですが、修正するとしたらこの辺りでしょうか?

ソース全てではないのでご判断が難しいかもしれませんが、もし当たりが付けられそうな方がいらっしゃいましたらアドバイスを頂けませんでしょうか。
umebius
投稿日時: 2020/10/27 21:10
対応状況: −−−
登録日: 2016/7/22
居住地:
投稿: 2085
Re: 顧客情報編集画面に追加項目を表示したい

管理画面側のフォームである
src/Eccube/Form/Type/Admin/CustomerType.php
をExtensionで拡張されていないのではないでしょうか?


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

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

immat
投稿日時: 2020/10/27 21:26
対応状況: −−−
半人前
登録日: 2020/9/2
居住地:
投稿: 14
Re: 顧客情報編集画面に追加項目を表示したい
ご回答ありがとうございます。
もし可能でしたらもう少々ご相談に乗って頂けますと幸いです。

app\Customize\Form\Extension\Front\EntryIndivisualTypeExtension.php
というファイルに、下記の記述がありました。

class EntryIndivisualTypeExtension extends AbstractTypeExtension
{


/** @var DeliveryAreaUserRepository */
protected $deliveryAreaUserRepository;

public function __construct(DeliveryAreaUserRepository $deliveryAreaUserRepository)
{
$this->deliveryAreaUserRepository = $deliveryAreaUserRepository;
}

/**
* {@inheritdoc}
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('office', OfficeType::class, [
'required' => false,
])

/**
* {@inheritdoc}
*/
public function getExtendedType()
{
return EntryIndivisualType::class;
}
}

------------------------------------------------
\app\Customize\Form\Extension\Admin\CustomerTypeExtension.php

こちらにも記述が必要なのかと思い、下記記載してみましたがどちらもうまくいきませんでした。

$builder
->add('office', OfficeType::class, [
'required' => false,
])

→OfficeTypeがないエラー

$builder
->add('office', TextType::class, [
'required' => false,
])

→何も起きない(職場は表示されない)




immat
投稿日時: 2020/10/27 21:51
対応状況: −−−
半人前
登録日: 2020/9/2
居住地:
投稿: 14
Re: 顧客情報編集画面に追加項目を表示したい
長々と何度も恐れ入ります。作成者と連絡が取れましたので、解決しましたらクローズ致します。
お忙しい所お時間を頂戴して申し訳ございませんでした。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

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

投稿数ランキング

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.