質問編集履歴

2

コードの追加

2016/09/20 04:55

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -2,81 +2,111 @@
2
2
 
3
3
 
4
4
 
5
- 配列
6
-
7
5
  ```
8
6
 
9
- $array = array(
7
+ $users = Model_Owner::find('all',array('where' => array(array('userId', $user_id))));
10
8
 
11
- array(
9
+ if (!empty($users)) {
12
10
 
13
- 'blockName' => '東京ブロック',
11
+ foreach ($users as $key) {
14
12
 
15
- 'blockLeader' => array(
13
+ $ownerId = $key['ownerId']; // オーナーIDを取得
16
14
 
17
- 'leaderName' => 'Aさん',
15
+ }
18
16
 
19
- 'age' => '21'
17
+ // リレーション先のブロック長モデルを参照
20
18
 
21
- ),
19
+ $blockOwner = Model_Owner::find('first' , array(
22
20
 
23
- 'subLeaders' => array(
21
+ 'related' => array(
24
22
 
25
- array(
26
-
27
- 'subLeaderName' => 'Bさん',
28
-
29
- 'age' => '39'
23
+ 'block_owner'
30
24
 
31
25
  ),
32
26
 
33
- array(
27
+ 'where' => array(
34
28
 
35
- 'subLeaderName' => 'Cさん',
29
+ array('ownerId', $ownerId)
36
30
 
37
- 'age' => '78'
31
+ )
38
32
 
39
- ),
33
+ ));
40
34
 
41
- )
35
+ $blockOwnerArray = $blockOwner->block_owner;
42
36
 
43
- ),
37
+ var_dump($blockOwnerArray);
44
38
 
45
- array(
39
+ foreach ($blockOwnerArray as &$key) {
46
40
 
47
- 'blockName' => '神奈川ブロック',
41
+ $blockId = $key['blockId'];
48
42
 
49
- 'blockLeader' => array(
43
+ $memberArray[$blockId] = array('blockName' => $key['blockName']);
50
44
 
51
- 'leaderName' => 'Zさん',
45
+ // ブロックID からブロックテーブルを参照し、ブロック長を取得する
52
46
 
53
- 'age' => '21'
47
+ $users = Model_User::find('all', array('where' => array(array('id', $key['userId']))));
54
48
 
55
- ),
49
+ if (!empty($users)) {
56
50
 
57
- 'subLeaders' => array(
51
+ foreach ($users as $key) {
58
52
 
59
- array(
53
+ $blockLeader = $key['username'];
60
54
 
61
- 'subLeaderName' => 'Xさん',
55
+ $userId = $key['id'];
62
56
 
63
- 'age' => '39'
57
+ $status = $key['attend_status'];
64
58
 
65
- ),
59
+ }
66
60
 
67
- array(
61
+ $memberArray[$blockId]['blockLeader'] = array('leaderName' => $blockLeader, 'userId' => $userId, 'status' => $status);
68
62
 
69
- 'subLeaderName' => 'Yさん',
63
+ }
70
64
 
71
- 'age' => '78'
65
+ unset($key);
72
66
 
73
- ),
67
+ //ブロックIDから班長テーブルを参照し、班長を取得する
74
68
 
75
- )
69
+ $leaders = Model_User::find('all', array('where' => array(array('blockId', $blockId),array('roleId', 3))));
76
70
 
77
- )
71
+ if (!empty($leaders)) {
78
72
 
73
+ foreach ($leaders as $key) {
74
+
75
+ $subLeader = $key['username'];
76
+
77
+ $userId = $key['id'];
78
+
79
+ $status = $key['attend_status'];
80
+
81
+ $memberArray[$blockId]['subLeaders'][] = array('subLeaderName' => $subLeader, 'userId' => $userId, 'status' => $status);
82
+
79
- );
83
+ }
84
+
85
+ }
86
+
87
+ // ブロックIDから班長テーブルを参照し、班員を取得する
88
+
89
+ $members = Model_User::find('all', array('where' => array(array('blockId', $blockId),array('roleId', 4))));
90
+
91
+ if (!empty($members)) {
92
+
93
+ foreach ($members as $key) {
94
+
95
+ $member = $key['username'];
96
+
97
+ $userId = $key['id'];
98
+
99
+ $status = $key['attend_status'];
100
+
101
+ $memberArray[$blockId]['members'][] = array('memberName' => $member, 'userId' => $userId, 'status' => $status);
102
+
103
+ }
104
+
105
+
106
+
107
+ }
108
+
109
+ }
80
110
 
81
111
  ```
82
112
 
@@ -90,7 +120,7 @@
90
120
 
91
121
  ```
92
122
 
93
- foreach ($array as $key => $value) {
123
+ foreach ($memberArray as $key => $value) {
94
124
 
95
125
  var_dump($value['blockLeader']); // 正常に動く
96
126
 

1

コードの追加

2016/09/20 04:55

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -92,13 +92,15 @@
92
92
 
93
93
  foreach ($array as $key => $value) {
94
94
 
95
- var_dump($value['subLeaders']);
95
+ var_dump($value['blockLeader']); // 正常に動く
96
+
97
+ var_dump($value['subLeaders']); // undefined index error
96
98
 
97
99
  }
98
100
 
99
101
  ```
100
102
 
101
- 上記のような形にすれば、subLeaderの配列だけ表示されると思うのですが、
103
+ 上記のような形にすれば、配列表示されると思うのですが、subLeadersだけ
102
104
 
103
105
  Undefined index: subLeaders とエラーになります。
104
106