質問編集履歴
4
途中送信していたものを編集
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
|
1
|
+
cakephpのfindで出てくる配列の形式について
|
body
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
CakePHPで小規模なサイトを作っているプログラミング経験1年程度の初心者です。
|
2
2
|
バージョンはCakePHP2.8だと思います。
|
3
3
|
|
4
|
-
Modelのfind関数で出てくる配列ですが、Viewにおいて
|
4
|
+
Modelのfind関数で出てくる配列ですが、ViewにおいてElementを使いまわそうとするとその形式に悩まされています。
|
5
|
+
仕様だからしょうがないのかもしれないですが、なにかいい解決方法を知っている、思いついた方がいたら教えてください。
|
5
6
|
|
6
7
|
例えば1つのレシピが複数の材料と関連があるといったモデルで、レシピを検索すると、次のような配列が出てくると思います。
|
7
8
|
Array
|
@@ -37,4 +38,60 @@
|
|
37
38
|
(
|
38
39
|
(以下略)
|
39
40
|
|
41
|
+
しかし、ユーザー等の関連モデルからレシピを検索すると、
|
42
|
+
Array
|
43
|
+
(
|
44
|
+
[0] => Array
|
45
|
+
(
|
46
|
+
[User] => Array
|
47
|
+
(
|
48
|
+
[id] => 1
|
49
|
+
[data] => ユーザー1
|
50
|
+
)
|
51
|
+
[Recipe] => Array
|
52
|
+
(
|
53
|
+
[0] => Array
|
54
|
+
(
|
55
|
+
[id] => 1
|
56
|
+
[data] => 野菜炒め
|
57
|
+
[Ingredient] => Array
|
58
|
+
(
|
59
|
+
[0] => Array
|
60
|
+
(
|
61
|
+
[id] => 1
|
62
|
+
[data] => 肉
|
63
|
+
)
|
64
|
+
[1] => Array
|
65
|
+
(
|
66
|
+
[id] => 2
|
67
|
+
[data] => キャベツ
|
68
|
+
)
|
69
|
+
)
|
70
|
+
[1] => Array
|
71
|
+
(
|
72
|
+
[id] => 2
|
73
|
+
[data] => 味噌汁
|
74
|
+
[Ingredient] => Array
|
75
|
+
(以下略)
|
76
|
+
と細かいところはアレですがこんな感じになると思います。
|
77
|
+
|
78
|
+
それぞれの配列を用いてレシピ一覧と関連レシピつきユーザー一覧のページを作りたいと思ったとき、レシピ部分は共通のデザインなので「recipe.ctp」みたいにElementにまとめたいと思いました。
|
79
|
+
そうすると問題になるのがRecipe部分の配列の形式で、それぞれ
|
80
|
+
|
81
|
+
foreach($data as $data2){
|
82
|
+
echo $this->element('recipe',array('recipe' => $data2));
|
83
|
+
}
|
84
|
+
|
85
|
+
-----------------------------
|
86
|
+
|
87
|
+
foreach($data as $data2){
|
88
|
+
foreach($data2['Recipe'] as $data3)
|
89
|
+
echo $this->element('recipe',array('recipe' => $data3));
|
90
|
+
}
|
91
|
+
}
|
92
|
+
|
40
|
-
|
93
|
+
という感じで「recipe.ctp」に配列を渡すとその中で$recipeの形式が違ってきてしまいます。
|
94
|
+
Elementなんか使わずにそれぞれのパターンでCTPファイルに書き込めばいいかもしれないですが、それでは保守性が犠牲になるので避けたいです。
|
95
|
+
findしたあとコントローラーで同じ形式になるようforeachで加工するのも考えましたが、他のモデルでも同様の問題が発生しているので同じようなコードを書くのも気が引けます。
|
96
|
+
|
97
|
+
ちょっと丸投げになっている気もしなくもないですが、何か一箇所にコードを追加、変更するだけで全体が解決するようないい方法を思いついた方がいましたら、ぜひ教えてください。
|
3
途中送信
title
CHANGED
File without changes
|
body
CHANGED
@@ -37,25 +37,4 @@
|
|
37
37
|
(
|
38
38
|
(以下略)
|
39
39
|
|
40
|
-
一方で、複数のユーザーが複数のレシピを持っているといった場合に(HABTM)、材料まで含めて検索すると、
|
40
|
+
一方で、複数のユーザーが複数のレシピを持っているといった場合に(HABTM)、材料まで含めて検索すると、
|
41
|
-
|
42
|
-
Array
|
43
|
-
(
|
44
|
-
[0] => Array
|
45
|
-
(
|
46
|
-
[id] => 1
|
47
|
-
[data] => 2016A前期
|
48
|
-
[Recipe] => Array
|
49
|
-
(
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
Array
|
55
|
-
(
|
56
|
-
[0] => Array
|
57
|
-
(
|
58
|
-
[id] => 1
|
59
|
-
[data] => 2016A前期
|
60
|
-
[Post] => Array
|
61
|
-
(
|
2
途中送信
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
cakephpのfindで出てくる配列の形について
|
1
|
+
途中送信してしまいました。無視してください。cakephpのfindで出てくる配列の形について
|
body
CHANGED
File without changes
|
1
途中送信
title
CHANGED
File without changes
|
body
CHANGED
@@ -58,82 +58,4 @@
|
|
58
58
|
[id] => 1
|
59
59
|
[data] => 2016A前期
|
60
60
|
[Post] => Array
|
61
|
-
(
|
61
|
+
(
|
62
|
-
[0] => Array
|
63
|
-
(
|
64
|
-
[id] => 101
|
65
|
-
[thread_no] => 1
|
66
|
-
[response_no] => 1
|
67
|
-
[user_id] => 3
|
68
|
-
[lecture_id] => 12
|
69
|
-
[type] => info
|
70
|
-
[title] => テスト
|
71
|
-
[text] => 本ブーン
|
72
|
-
[image] =>
|
73
|
-
[created] => 2016-05-10 14:57:31
|
74
|
-
[modified] => 2016-05-10 14:57:31
|
75
|
-
[deleted] =>
|
76
|
-
[User] => Array
|
77
|
-
(
|
78
|
-
[nickname] => ID3ユーザー
|
79
|
-
[id] => 3
|
80
|
-
)
|
81
|
-
|
82
|
-
[good] => 1
|
83
|
-
)
|
84
|
-
|
85
|
-
)
|
86
|
-
|
87
|
-
[memo] =>
|
88
|
-
[users_lecture_id] => 27
|
89
|
-
)
|
90
|
-
|
91
|
-
[1] => Array
|
92
|
-
(
|
93
|
-
[id] => 11
|
94
|
-
[term] => 2016A前期
|
95
|
-
[subid] =>
|
96
|
-
[name] => 新たなる授業< " ' \ >あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほ
|
97
|
-
[day] => monday1
|
98
|
-
[type] => 全共 自然群
|
99
|
-
[lecturer] => AN,Lin,FLORES Giancarlo,KHAYYER Abbas,KIM Chul-Woo,KIM,SUNMIN,PIPATPONGSA, Thirapong,QURESHI,Ali Gul,SCHMOCKER,Jan-Dirk
|
100
|
-
[former_lecture_id] =>
|
101
|
-
[data_id] => lecture_11111
|
102
|
-
[data_url] => http://www.z.k.kyoto-u.ac.jp/zenkyo/syllabus/syllabus-detail?condition[page]=9&page=13
|
103
|
-
[textbook] => あいう社「かきく」
|
104
|
-
[ad] => add_data
|
105
|
-
[classroom] => 共南11
|
106
|
-
[record] => 成績評価はテストのみ!
|
107
|
-
[created] => 0000-00-00 00:00:00
|
108
|
-
[modified] =>
|
109
|
-
[deleted] =>
|
110
|
-
[Post] => Array
|
111
|
-
(
|
112
|
-
[0] => Array
|
113
|
-
(
|
114
|
-
[id] => 79
|
115
|
-
[thread_no] => 1
|
116
|
-
[response_no] => 1
|
117
|
-
[user_id] => 3
|
118
|
-
[lecture_id] => 11
|
119
|
-
[type] => info
|
120
|
-
[title] => テスト
|
121
|
-
[text] =>
|
122
|
-
[image] =>
|
123
|
-
[created] => 2016-04-18 18:27:53
|
124
|
-
[modified] => 2016-04-18 18:27:53
|
125
|
-
[deleted] =>
|
126
|
-
[User] => Array
|
127
|
-
(
|
128
|
-
[nickname] => ID3ユーザー
|
129
|
-
[id] => 3
|
130
|
-
)
|
131
|
-
|
132
|
-
[good] =>
|
133
|
-
)
|
134
|
-
|
135
|
-
)
|
136
|
-
|
137
|
-
[memo] =>
|
138
|
-
[users_lecture_id] => 29
|
139
|
-
)
|