質問編集履歴

5

質問を追記しました。

2019/02/13 05:08

投稿

BlueBits
BlueBits

スコア57

test CHANGED
File without changes
test CHANGED
@@ -118,11 +118,23 @@
118
118
 
119
119
  以上の構成であればデーターベースでやれば簡単なのですが、
120
120
 
121
+
122
+
123
+
124
+
121
125
  それをCollectionで似たようなことが、できないかというのが今回の質問の意図です。
122
126
 
123
- その上で以下のような質問になりました。
127
+
124
-
128
+
125
- また理由の1つに、itemsのテーブルがjsonデータに置き換わる場合があった場合方法に悩んでしまいました。
129
+ また理由の1つに、上記のテーブルが一部jsonデータで保存されていた場合にどのようにすればいいかと方法に悩んでしまいました。
130
+
131
+ Collectionであれば以下の方法でjsonデータをcollect化できますので。。
132
+
133
+ ```ここに言語を入力
134
+
135
+ collect(json_encode(jsonデータ))
136
+
137
+ ```
126
138
 
127
139
 
128
140
 

4

質問にデータベース構成を増やしました。

2019/02/13 05:08

投稿

BlueBits
BlueBits

スコア57

test CHANGED
File without changes
test CHANGED
@@ -12,7 +12,127 @@
12
12
 
13
13
 
14
14
 
15
+
16
+
17
+
18
+
19
+ ### データベース(案)
20
+
21
+ Collection出力の元となるデーターベースです。
22
+
23
+
24
+
25
+ **users**
26
+
27
+ |id|name|
28
+
29
+ |:--|:--:|
30
+
31
+ |1|名前1|
32
+
33
+ |2|名前2|
34
+
35
+ |3|名前3|
36
+
37
+
38
+
39
+
40
+
41
+ **titles**
42
+
43
+ |id|name|
44
+
45
+ |:--|:--:|
46
+
47
+ |1|タイトル1|
48
+
49
+ |2|タイトル2|
50
+
51
+ |3|タイトル3|
52
+
53
+
54
+
55
+ **items**
56
+
57
+ |id|title_id|name|
58
+
59
+ |:--|:--:|:--:|
60
+
61
+ |1|1|アイテム1|
62
+
63
+ |2|1|アイテム2|
64
+
65
+ |3|1|アイテム3|
66
+
67
+ |4|2|アイテム4|
68
+
69
+ |5|2|アイテム5|
70
+
71
+ |6|2|アイテム6|
72
+
73
+ |7|3|アイテム7|
74
+
75
+ |8|3|アイテム8|
76
+
77
+ |9|3|アイテム9|
78
+
79
+
80
+
81
+ **datas**
82
+
83
+ |id|user_id|title_id|item_id|
84
+
85
+ |:--|:--:|:--:|:--:|
86
+
87
+ |1|1|1|2|
88
+
89
+ |2|1|2|5|
90
+
91
+ |3|1|3|8|
92
+
93
+
94
+
95
+ 以上のデータベースから
96
+
97
+ datasより名前1(user_id 1)のデータを以下のように出力し
98
+
99
+
100
+
101
+ **結果**
102
+
103
+ ```php
104
+
105
+ $collection = collect([
106
+
107
+ ['id' => 1, 'title' => 'タイトル1', 'value' => 2,'name' => 'アイテム2'],
108
+
109
+ ['id' => 2, 'title' => 'タイトル2', 'value' => 5,'name' => 'アイテム5'],
110
+
111
+ ['id' => 3, 'title' => 'タイトル3', 'value' => 8,'name' => 'アイテム8']
112
+
113
+ ]);
114
+
115
+ ```
116
+
117
+
118
+
119
+ 以上の構成であればデーターベースでやれば簡単なのですが、
120
+
121
+ それをCollectionで似たようなことが、できないかというのが今回の質問の意図です。
122
+
15
- ここに質問の内容を詳く書いてください
123
+ その上で以下のような質問になりま
124
+
125
+ また理由の1つに、itemsのテーブルがjsonデータに置き換わる場合があった場合方法に悩んでしまいました。
126
+
127
+
128
+
129
+
130
+
131
+ ---
132
+
133
+ **質問**
134
+
135
+
16
136
 
17
137
 
18
138
 

3

コレクションデータのidを変更しました。

2019/02/13 04:50

投稿

BlueBits
BlueBits

スコア57

test CHANGED
File without changes
test CHANGED
@@ -1,9 +1,3 @@
1
- 途中で投稿してしまいました。
2
-
3
- 修正中です。
4
-
5
-
6
-
7
1
  ### 前提・実現したいこと
8
2
 
9
3
 
@@ -30,9 +24,9 @@
30
24
 
31
25
  ['id' => 1, 'value' => 2],
32
26
 
33
- ['id' => 2, 'value' => 1],
27
+ ['id' => 2, 'value' => 5],
34
28
 
35
- ['id' => 3, 'value' => 3],
29
+ ['id' => 3, 'value' => 8],
36
30
 
37
31
  ]);
38
32
 
@@ -58,11 +52,11 @@
58
52
 
59
53
  'items'=>[
60
54
 
61
- ['id' => 1, 'name' => 'アイテム1'],
55
+ ['id' => 4, 'name' => 'アイテム4'],
62
56
 
63
- ['id' => 2, 'name' => 'アイテム2'],
57
+ ['id' => 5, 'name' => 'アイテム5'],
64
58
 
65
- ['id' => 3, 'name' => 'アイテム3']
59
+ ['id' => 6, 'name' => 'アイテム6']
66
60
 
67
61
  ]
68
62
 
@@ -72,11 +66,11 @@
72
66
 
73
67
  'items'=>[
74
68
 
75
- ['id' => 1, 'name' => 'アイテム1'],
69
+ ['id' => 7, 'name' => 'アイテム7'],
76
70
 
77
- ['id' => 2, 'name' => 'アイテム2'],
71
+ ['id' => 8, 'name' => 'アイテム8'],
78
72
 
79
- ['id' => 3, 'name' => 'アイテム3']
73
+ ['id' => 9, 'name' => 'アイテム9']
80
74
 
81
75
  ]
82
76
 
@@ -96,9 +90,9 @@
96
90
 
97
91
  ['id' => 1, 'title' => 'タイトル1', 'value' => 2,'name' => 'アイテム2'],
98
92
 
99
- ['id' => 2, 'title' => 'タイトル2', 'value' => 1,'name' => 'アイテム1'],
93
+ ['id' => 2, 'title' => 'タイトル2', 'value' => 5,'name' => 'アイテム5'],
100
94
 
101
- ['id' => 3, 'title' => 'タイトル3', 'value' => 3,'name' => 'アイテム3']
95
+ ['id' => 3, 'title' => 'タイトル3', 'value' => 8,'name' => 'アイテム8']
102
96
 
103
97
  ]);
104
98
 

2

誤字修正しました。

2019/02/13 04:13

投稿

BlueBits
BlueBits

スコア57

test CHANGED
File without changes
test CHANGED
@@ -8,7 +8,7 @@
8
8
 
9
9
 
10
10
 
11
- LarvelのCollection同士を結合
11
+ LaravelのCollection同士を結合
12
12
 
13
13
  (イメージとしてはDB left join)
14
14
 
@@ -98,7 +98,7 @@
98
98
 
99
99
  ['id' => 2, 'title' => 'タイトル2', 'value' => 1,'name' => 'アイテム1'],
100
100
 
101
- ['id' => 3, 'title' => 'タイトル3', 'value' => 3,'name' => 'アイテム3'],
101
+ ['id' => 3, 'title' => 'タイトル3', 'value' => 3,'name' => 'アイテム3']
102
102
 
103
103
  ]);
104
104
 
@@ -112,4 +112,4 @@
112
112
 
113
113
  まわりくどい方法は思いつくのですが
114
114
 
115
- larabel自体はまだ始めたばっかで適切なコマンド・方法があるかと思った次第です。
115
+ Laravel自体はまだ始めたばっかで適切なコマンド・方法があるかと思った次第です。

1

記入途中で投稿してしまいました。

2019/02/13 04:08

投稿

BlueBits
BlueBits

スコア57

test CHANGED
File without changes
test CHANGED
@@ -1,3 +1,9 @@
1
+ 途中で投稿してしまいました。
2
+
3
+ 修正中です。
4
+
5
+
6
+
1
7
  ### 前提・実現したいこと
2
8
 
3
9
 
@@ -22,13 +28,11 @@
22
28
 
23
29
  $collection_a = collect([
24
30
 
25
- ['id' => 1, 'value' => 1],
31
+ ['id' => 1, 'value' => 2],
26
32
 
27
- ['id' => 2, 'value' => 2],
33
+ ['id' => 2, 'value' => 1],
28
34
 
29
35
  ['id' => 3, 'value' => 3],
30
-
31
- ['id' => 4, 'value' => 4],
32
36
 
33
37
  ]);
34
38
 
@@ -36,17 +40,65 @@
36
40
 
37
41
  $collection_b = collect([
38
42
 
39
- ['id' => 1, 'title' => 'タイトル',
43
+ ['id' => 1, 'title' => 'タイトル1',
40
44
 
41
- []
45
+ 'items'=>[
42
46
 
43
- ],
47
+ ['id' => 1, 'name' => 'アイテム1'],
44
48
 
45
- ['id' => 2, 'value' => 2],
49
+ ['id' => 2, 'name' => 'アイテム2'],
46
50
 
47
- ['id' => 3, 'value' => 3],
51
+ ['id' => 3, 'name' => 'アイテム3']
48
52
 
53
+ ]
54
+
55
+ ],
56
+
57
+ ['id' => 2, 'title' => 'タイトル2',
58
+
59
+ 'items'=>[
60
+
49
- ['id' => 4, 'value' => 4],
61
+ ['id' => 1, 'name' => 'アイテム1'],
62
+
63
+ ['id' => 2, 'name' => 'アイテム2'],
64
+
65
+ ['id' => 3, 'name' => 'アイテム3']
66
+
67
+ ]
68
+
69
+ ],
70
+
71
+ ['id' => 3, 'title' => 'タイトル3',
72
+
73
+ 'items'=>[
74
+
75
+ ['id' => 1, 'name' => 'アイテム1'],
76
+
77
+ ['id' => 2, 'name' => 'アイテム2'],
78
+
79
+ ['id' => 3, 'name' => 'アイテム3']
80
+
81
+ ]
82
+
83
+ ]
84
+
85
+ ]);
86
+
87
+ ```
88
+
89
+ 以上の2つのCollectionを以下のように出力を考えています。
90
+
91
+
92
+
93
+ ```php
94
+
95
+ $collection_c = collect([
96
+
97
+ ['id' => 1, 'title' => 'タイトル1', 'value' => 2,'name' => 'アイテム2'],
98
+
99
+ ['id' => 2, 'title' => 'タイトル2', 'value' => 1,'name' => 'アイテム1'],
100
+
101
+ ['id' => 3, 'title' => 'タイトル3', 'value' => 3,'name' => 'アイテム3'],
50
102
 
51
103
  ]);
52
104
 
@@ -54,40 +106,10 @@
54
106
 
55
107
 
56
108
 
57
- ### 発生る問題・エラーメッセージ
109
+ foreachで回す方法かなのでしょうか?
58
110
 
59
111
 
60
112
 
61
- ```
113
+ まわりくどい方法は思いつくのですが
62
114
 
63
- エラーメッセージ
64
-
65
- ```
66
-
67
-
68
-
69
- ### 該当のソースコード
70
-
71
-
72
-
73
- ```ここに言語名を入力
74
-
75
- ソースコード
76
-
77
- ```
78
-
79
-
80
-
81
- ### 試したこと
82
-
83
-
84
-
85
- ここに問題に対して試したことを記載してください。
86
-
87
-
88
-
89
- ### 補足情報(FW/ツールのバージョなど)
115
+ larabel自体はまだ始めたばっかで適切なコマド・方法があるかと思った次第です。
90
-
91
-
92
-
93
- ここにより詳細な情報を記載してください。