バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > 管理機能 > productエンティティにoneToOneのリレーションを追加する方法を教えてください。

管理機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
ikedacovic
投稿日時: 2017/4/8 12:41
対応状況: −−−
新米
登録日: 2016/10/23
居住地:
投稿: 6
productエンティティにoneToOneのリレーションを追加する方法を教えてください。
▼テンプレート
[EC-CUBE] EC-CUBE 3.0.14
[レンタルサーバ] ローカル
[PHP] 7.1.0
[データベース] MySQL 5.6.34
[WEBサーバ] Apache/2.2.31

現在、プラグインを作成しているのですがDB周りが苦手で困っています。
ProductEntityにoneToOneのリレーションで新しいEntity(SampleTable)を追加したいのですが、
本体のソースに変更を加えない前提でプラグイン側のdcm.ymlに以下のように記述しています。
以下の記述だと、登録した、リレーションされたProductEntityのproduct_idも一緒に登録はできたのですが
その「登録されたproduct_idで、追加テーブルのデータを取得」できません。
以下の記述で見直すべきところはありますでしょうか?

Plugin\SampleTable\Entity\SampleTable:
type: entity
table: plg_sample_table
repositoryClass: Plugin\RentalSystem\Repository\SampleTableRepository
id:
id:
type: integer
nullable: false
options:
unsigned: false
id: true
fields:
sample_table_column:
type: integer
nullable: false
created_at:
type: datetime
nullable: true
updated_at:
type: datetime
nullable: true
oneToOne:
Product:
targetEntity: Eccube\Entity\Product
inversedBy: SampleTable
joinColumn:
name: product_id
referencedColumnName: product_id
nullable: false
options:
unsigned: true
lifecycleCallbacks: {}

hmorita_j
投稿日時: 2017/4/8 12:44
対応状況: −−−
長老
登録日: 2017/3/3
居住地: 沈黙の巨大都市松戸
投稿: 222
Re: productエンティティにoneToOneのリレーションを追加する方法を教えてください。
取得しているところのソースはどのようになっていますか?
ikedacovic
投稿日時: 2017/4/8 12:57
対応状況: −−−
新米
登録日: 2016/10/23
居住地:
投稿: 6
Re: productエンティティにoneToOneのリレーションを追加する方法を教えてください。
ご質問ありがとうございます。

取得箇所はこんな感じです。

>>>>プロダクトテーブルのproduct_idを取得
$product_id = $event->getArgument('Product)->getId();

>>>新規追加したレポジトリを取得
$sampleRepo = $app['plugin.sampletable.repository'];

>>>新規取得したレポジトリから、一番上で取得した$product_idと、SampleTableにマッピング(?)された[
[product_id](SampleTableにこのようなカラムが自動で作成されていました)の値が一致するものを取得
$Target = $sampleRepo->findOneBy(array('product_id' => $product_id));


このような感じでいけるかと思ったのですが、ダメなようなのです。
hmorita_j
投稿日時: 2017/4/8 13:04
対応状況: −−−
長老
登録日: 2017/3/3
居住地: 沈黙の巨大都市松戸
投稿: 222
Re: productエンティティにoneToOneのリレーションを追加する方法を教えてください。

$Product = $event->getArgument('Product);
$sampleRepo = $app['plugin.sampletable.repository'];
$Target = $sampleRepo->findOneBy(array('Product' => $Product));


これではどうですか?
ikedacovic
投稿日時: 2017/4/8 13:09
対応状況: −−−
新米
登録日: 2016/10/23
居住地:
投稿: 6
Re: productエンティティにoneToOneのリレーションを追加する方法を教えてください。
ありがとうございます。
せっかくすぐにお答えいただいたのに大変申し訳ないのですが、後ほど試させていただきます!

結果をまたこちらにレスさせていただきますのでよろしくお願いいたします!

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


 



ログイン


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

統計情報

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

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1638
8
red
1570
9
mcontact
1285
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
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.