質問編集履歴

3

カテゴリの修正および内容の多少の修正

2016/06/23 02:28

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
File without changes

2

情報追加

2016/06/23 02:28

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -79,3 +79,101 @@
79
79
  ご教示いただける方がいましたら、ご教示いただけると幸いです。
80
80
 
81
81
  よろしくお願いいたします。
82
+
83
+
84
+
85
+ 追加
86
+
87
+ ```
88
+
89
+ 例:店舗Bの場合
90
+
91
+ 0 => Category {#1724 ▼
92
+
93
+ -id: 10 -name: "店舗B"
94
+
95
+ -level: 2 -rank: 6
96
+
97
+ -create_date: DateTime {#1721 ▶}
98
+
99
+ -update_date: DateTime {#1722 ▶}
100
+
101
+ -del_flg: 0
102
+
103
+ -CategoryCount: null
104
+
105
+ -CategoryTotalCount: null
106
+
107
+ -ProductCategories: PersistentCollection {#1733 ▶}
108
+
109
+ -Children: PersistentCollection {#1735 ▶}
110
+
111
+ -Parent: Category {#1782 ▶}
112
+
113
+ -Creator: Member {#1374 ▶} }
114
+
115
+ ```
116
+
117
+ ```
118
+
119
+ 店舗Aの場合は 店舗Aとして、食器に属している店舗Aと家具に属している店舗Aがあります。
120
+
121
+ 0 => Category {#1735 ▼
122
+
123
+ -id: 11
124
+
125
+ -name: "店舗A"
126
+
127
+ -level: 2
128
+
129
+ -rank: 7
130
+
131
+ -create_date: DateTime {#1732 ▶}
132
+
133
+ -update_date: DateTime {#1733 ▶}
134
+
135
+ -del_flg: 0
136
+
137
+ -CategoryCount: null
138
+
139
+ -CategoryTotalCount: null
140
+
141
+ -ProductCategories: PersistentCollection {#1744 ▶}
142
+
143
+ -Children: PersistentCollection {#1746 ▶}
144
+
145
+ -Parent: Category {#1793 ▶}
146
+
147
+ -Creator: Member {#1792 ▶} } 1 => Category {#1789 ▼
148
+
149
+
150
+
151
+ -id: 13 -name: "店舗A"
152
+
153
+ -level: 2
154
+
155
+ -rank: 3
156
+
157
+ -create_date: DateTime {#1791 ▶}
158
+
159
+ -update_date: DateTime {#1790 ▶}
160
+
161
+ -del_flg: 0
162
+
163
+ -CategoryCount: null
164
+
165
+ -CategoryTotalCount: null
166
+
167
+ -ProductCategories: PersistentCollection {#1788 ▶}
168
+
169
+ -Children: PersistentCollection {#1786 ▶}
170
+
171
+ -Parent: Category {#1784 ▶}
172
+
173
+ -Creator: Member {#1792 ▶ …2} }
174
+
175
+ ```
176
+
177
+
178
+
179
+ EC-CUBEとして、CategoryのエンティティクラスにgetPathメソッドがあり、ここからそれぞれの子カテゴリに対する親カテゴリを取得できるようなのでそこを使用して親カテゴリは取得する予定なのですが…

1

質問の全面的な修正

2016/06/23 02:03

投稿

退会済みユーザー
test CHANGED
@@ -1 +1 @@
1
- foreachとarray_mergeの使い方
1
+ array_mergeの使い方
test CHANGED
@@ -1,53 +1,81 @@
1
- ###前提・実現したいこと
2
-
3
- PHP(EC-CUBE3.0.10を使用してます)でDBから対象(店舗名)データ(商品のカテゴリ)を取得して、そから親カテゴリさらに取得て表示させようとしています。
1
+ EC-CUBEを使い、以下のこ実現しようとしています。
4
2
 
5
3
 
6
4
 
7
- して
5
+ ユーザ名が店舗名と同一であり、さらに店舗名ごとにカテゴリが分かている。各店舗には販売しているジャンルごとに親カテゴリを持っている。
8
6
 
9
- ①:ユーザ情報からユーザ名(店舗名と同一)を取得します。
7
+
10
8
 
11
- ②:①で取得したユーザ名を使用して同一名のカテゴリ名を取得し配列に詰めます。
9
+ 食器
12
10
 
13
- ③:②で取得したカテゴリより属する親カテゴリを取得します。
11
+ ・店舗A
14
12
 
13
+ ・店舗B
14
+
15
+ 家具
16
+
17
+ ・店舗A
18
+
19
+ ・店舗C
20
+
21
+
22
+
23
+ forでループを回しなんとか該当のカテゴリを取得することはできましたが、これを商品検索、商品登録、受注検索でカテゴリで絞った検索を行わせたい際にカテゴリの部分に表示させるため、複数の親カテゴリを持つ店舗の場合の配列結合の記述法についてご教示いただければ幸いです。
24
+
25
+
26
+
27
+ 画面表示例
28
+
29
+ 店舗Aの場合
30
+
31
+ 食器
32
+
33
+ ・店舗A
34
+
35
+ 家具
36
+
37
+ ・店舗A
38
+
39
+
40
+
41
+ 店舗Bの場合
42
+
43
+ 食器
44
+
45
+ ・店舗B
46
+
47
+
48
+
49
+ 今、以下のようにソースコードを作り子カテゴリとなるログインしている各店舗でそれぞれの店舗名のカテゴリは取得できていることをdumpして確認できております。
50
+
51
+ これを、forで回していくところまでかけたのですが、結合させる
52
+
53
+ array_mergeの部分がわかっていません。
54
+
15
- ④:表示させるため複数配列のカテゴリの場合1つに結合す。(foreachでループがら詰める感じでかね)
55
+ array_merge使い方調べたことで多少はわかすが、これとループを組み合わた部分わかずにまってしまっていま
56
+
57
+
58
+
59
+ $app = $this->app;
60
+
61
+ $name = $app['user']->getName();
62
+
63
+ $em = $app['orm.em'];
64
+
65
+ $categories = $em->getRepository('\Eccube\Entity\Category')->findBy(array('name'=>$name));
66
+
67
+
68
+
69
+ for ($i = 0; $i < count($categories); $i++) {
70
+
71
+ (ここの部分でarray_mergeするのかと思うのですが…)
72
+
73
+ }
16
74
 
17
75
 
18
76
 
19
77
 
20
78
 
21
- ###発生している問題・エラーメッセージ
22
-
23
-
24
-
25
- ```
26
-
27
- forでやろうとしたのですが、配列ではforeachを使用したほうがよいということもありforeachを使用しようとしていますがforeachと配列を結合させるarray_mergeの使い方があまりよく分かっておらず…
28
-
29
- ```
30
-
31
-
32
-
33
- ###該当のソースコード
34
-
35
- ```ここに言語を入力
36
-
37
- //店舗名はユーザ名と同一のためユーザ情報よりユーザ名を取得し以下の$nameに格納。
38
-
39
- $name = $app['user']->getName();
40
-
41
- //取得したユーザ名合致るカテゴリ名を取得します
79
+ ご教示いただける方がいましたら、ご教示いただける幸いで
42
-
43
- $categories = $em->getRepository('\Eccube\Entity\Category')->findBy(array('name'=>$name));
44
-
45
- // TODO この取得してきたカテゴリ名が属する親カテゴリIDを取得したい。
46
-
47
- ```
48
-
49
-
50
-
51
- お知恵をお貸しいただけないでしょうか?
52
80
 
53
81
  よろしくお願いいたします。