質問編集履歴

4

途中送信していたものを編集

2016/05/14 03:45

投稿

knf
knf

スコア13

test CHANGED
@@ -1 +1 @@
1
- 途中送信してしまいました。無視してください。cakephpのfindで出てくる配列の形について
1
+ cakephpのfindで出てくる配列の形について
test CHANGED
@@ -4,7 +4,9 @@
4
4
 
5
5
 
6
6
 
7
- Modelのfind関数で出てくる配列ですが、ViewにおいてElementsを使いまわそうとするとその形式に悩まされています。
7
+ Modelのfind関数で出てくる配列ですが、ViewにおいてElementを使いまわそうとするとその形式に悩まされています。
8
+
9
+ 仕様だからしょうがないのかもしれないですが、なにかいい解決方法を知っている、思いついた方がいたら教えてください。
8
10
 
9
11
 
10
12
 
@@ -76,4 +78,116 @@
76
78
 
77
79
 
78
80
 
81
+ しかし、ユーザー等の関連モデルからレシピを検索すると、
82
+
83
+ Array
84
+
85
+ (
86
+
87
+ [0] => Array
88
+
89
+ (
90
+
91
+ [User] => Array
92
+
93
+ (
94
+
95
+ [id] => 1
96
+
97
+ [data] => ユーザー1
98
+
99
+ )
100
+
101
+ [Recipe] => Array
102
+
103
+ (
104
+
105
+ [0] => Array
106
+
107
+ (
108
+
109
+ [id] => 1
110
+
111
+ [data] => 野菜炒め
112
+
113
+ [Ingredient] => Array
114
+
115
+ (
116
+
117
+ [0] => Array
118
+
119
+ (
120
+
121
+ [id] => 1
122
+
123
+ [data] => 肉
124
+
125
+ )
126
+
127
+ [1] => Array
128
+
129
+ (
130
+
131
+ [id] => 2
132
+
133
+ [data] => キャベツ
134
+
135
+ )
136
+
137
+ )
138
+
139
+ [1] => Array
140
+
141
+ (
142
+
143
+ [id] => 2
144
+
145
+ [data] => 味噌汁
146
+
147
+ [Ingredient] => Array
148
+
149
+ (以下略)
150
+
151
+ と細かいところはアレですがこんな感じになると思います。
152
+
153
+
154
+
155
+ それぞれの配列を用いてレシピ一覧と関連レシピつきユーザー一覧のページを作りたいと思ったとき、レシピ部分は共通のデザインなので「recipe.ctp」みたいにElementにまとめたいと思いました。
156
+
157
+ そうすると問題になるのがRecipe部分の配列の形式で、それぞれ
158
+
159
+
160
+
161
+ foreach($data as $data2){
162
+
163
+ echo $this->element('recipe',array('recipe' => $data2));
164
+
165
+ }
166
+
167
+
168
+
169
+ -----------------------------
170
+
171
+
172
+
173
+ foreach($data as $data2){
174
+
175
+ foreach($data2['Recipe'] as $data3)
176
+
177
+ echo $this->element('recipe',array('recipe' => $data3));
178
+
179
+ }
180
+
181
+ }
182
+
183
+
184
+
79
- 一方、複数ユーザー複数のレシピを持っているといった場合に(HABTM)、材料で含めて検索ると、
185
+ という感じ「recipe.ctp」に配列を渡すとそ中で$recipeの形式ってきてしまいます
186
+
187
+ Elementなんか使わずにそれぞれのパターンでCTPファイルに書き込めばいいかもしれないですが、それでは保守性が犠牲になるので避けたいです。
188
+
189
+ findしたあとコントローラーで同じ形式になるようforeachで加工するのも考えましたが、他のモデルでも同様の問題が発生しているので同じようなコードを書くのも気が引けます。
190
+
191
+
192
+
193
+ ちょっと丸投げになっている気もしなくもないですが、何か一箇所にコードを追加、変更するだけで全体が解決するようないい方法を思いついた方がいましたら、ぜひ教えてください。

3

途中送信

2016/05/14 03:45

投稿

knf
knf

スコア13

test CHANGED
File without changes
test CHANGED
@@ -77,45 +77,3 @@
77
77
 
78
78
 
79
79
  一方で、複数のユーザーが複数のレシピを持っているといった場合に(HABTM)、材料まで含めて検索すると、
80
-
81
-
82
-
83
- Array
84
-
85
- (
86
-
87
- [0] => Array
88
-
89
- (
90
-
91
- [id] => 1
92
-
93
- [data] => 2016A前期
94
-
95
- [Recipe] => Array
96
-
97
- (
98
-
99
-
100
-
101
-
102
-
103
-
104
-
105
-
106
-
107
- Array
108
-
109
- (
110
-
111
- [0] => Array
112
-
113
- (
114
-
115
- [id] => 1
116
-
117
- [data] => 2016A前期
118
-
119
- [Post] => Array
120
-
121
- (

2

途中送信

2016/05/14 02:59

投稿

knf
knf

スコア13

test CHANGED
@@ -1 +1 @@
1
- cakephpのfindで出てくる配列の形について
1
+ 途中送信してしまいました。無視してください。cakephpのfindで出てくる配列の形について
test CHANGED
File without changes

1

途中送信

2016/05/14 02:58

投稿

knf
knf

スコア13

test CHANGED
File without changes
test CHANGED
@@ -119,159 +119,3 @@
119
119
  [Post] => Array
120
120
 
121
121
  (
122
-
123
- [0] => Array
124
-
125
- (
126
-
127
- [id] => 101
128
-
129
- [thread_no] => 1
130
-
131
- [response_no] => 1
132
-
133
- [user_id] => 3
134
-
135
- [lecture_id] => 12
136
-
137
- [type] => info
138
-
139
- [title] => テスト
140
-
141
- [text] => 本ブーン
142
-
143
- [image] =>
144
-
145
- [created] => 2016-05-10 14:57:31
146
-
147
- [modified] => 2016-05-10 14:57:31
148
-
149
- [deleted] =>
150
-
151
- [User] => Array
152
-
153
- (
154
-
155
- [nickname] => ID3ユーザー
156
-
157
- [id] => 3
158
-
159
- )
160
-
161
-
162
-
163
- [good] => 1
164
-
165
- )
166
-
167
-
168
-
169
- )
170
-
171
-
172
-
173
- [memo] =>
174
-
175
- [users_lecture_id] => 27
176
-
177
- )
178
-
179
-
180
-
181
- [1] => Array
182
-
183
- (
184
-
185
- [id] => 11
186
-
187
- [term] => 2016A前期
188
-
189
- [subid] =>
190
-
191
- [name] => 新たなる授業< " ' \ >あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほ
192
-
193
- [day] => monday1
194
-
195
- [type] => 全共 自然群
196
-
197
- [lecturer] => AN,Lin,FLORES Giancarlo,KHAYYER Abbas,KIM Chul-Woo,KIM,SUNMIN,PIPATPONGSA, Thirapong,QURESHI,Ali Gul,SCHMOCKER,Jan-Dirk
198
-
199
- [former_lecture_id] =>
200
-
201
- [data_id] => lecture_11111
202
-
203
- [data_url] => http://www.z.k.kyoto-u.ac.jp/zenkyo/syllabus/syllabus-detail?condition[page]=9&page=13
204
-
205
- [textbook] => あいう社「かきく」
206
-
207
- [ad] => add_data
208
-
209
- [classroom] => 共南11
210
-
211
- [record] => 成績評価はテストのみ!
212
-
213
- [created] => 0000-00-00 00:00:00
214
-
215
- [modified] =>
216
-
217
- [deleted] =>
218
-
219
- [Post] => Array
220
-
221
- (
222
-
223
- [0] => Array
224
-
225
- (
226
-
227
- [id] => 79
228
-
229
- [thread_no] => 1
230
-
231
- [response_no] => 1
232
-
233
- [user_id] => 3
234
-
235
- [lecture_id] => 11
236
-
237
- [type] => info
238
-
239
- [title] => テスト
240
-
241
- [text] =>
242
-
243
- [image] =>
244
-
245
- [created] => 2016-04-18 18:27:53
246
-
247
- [modified] => 2016-04-18 18:27:53
248
-
249
- [deleted] =>
250
-
251
- [User] => Array
252
-
253
- (
254
-
255
- [nickname] => ID3ユーザー
256
-
257
- [id] => 3
258
-
259
- )
260
-
261
-
262
-
263
- [good] =>
264
-
265
- )
266
-
267
-
268
-
269
- )
270
-
271
-
272
-
273
- [memo] =>
274
-
275
- [users_lecture_id] => 29
276
-
277
- )