質問するログイン新規登録

質問編集履歴

5

質問を追記しました。

2019/02/13 05:08

投稿

BlueBits
BlueBits

スコア57

title CHANGED
File without changes
body CHANGED
@@ -58,11 +58,17 @@
58
58
  ```
59
59
 
60
60
  以上の構成であればデーターベースでやれば簡単なのですが、
61
+
62
+
61
63
  それをCollectionで似たようなことが、できないかというのが今回の質問の意図です。
62
- その上で以下のような質問になりました。
63
- また理由の1つに、itemsのテーブルがjsonデータに置き換わる場合があった場合方法に悩んでしまいました。
64
64
 
65
+ また理由の1つに、上記のテーブルが一部jsonデータで保存されていた場合にどのようにすればいいかと方法に悩んでしまいました。
66
+ Collectionであれば以下の方法でjsonデータをcollect化できますので。。
67
+ ```ここに言語を入力
68
+ collect(json_encode(jsonデータ))
69
+ ```
65
70
 
71
+
66
72
  ---
67
73
  **質問**
68
74
 

4

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

2019/02/13 05:08

投稿

BlueBits
BlueBits

スコア57

title CHANGED
File without changes
body CHANGED
@@ -5,8 +5,68 @@
5
5
  そのコマンドがあるかどうか?
6
6
 
7
7
 
8
- ここに質問の内容を詳しく書いてください。
9
8
 
9
+
10
+ ### データベース(案)
11
+ Collection出力の元となるデーターベースです。
12
+
13
+ **users**
14
+ |id|name|
15
+ |:--|:--:|
16
+ |1|名前1|
17
+ |2|名前2|
18
+ |3|名前3|
19
+
20
+
21
+ **titles**
22
+ |id|name|
23
+ |:--|:--:|
24
+ |1|タイトル1|
25
+ |2|タイトル2|
26
+ |3|タイトル3|
27
+
28
+ **items**
29
+ |id|title_id|name|
30
+ |:--|:--:|:--:|
31
+ |1|1|アイテム1|
32
+ |2|1|アイテム2|
33
+ |3|1|アイテム3|
34
+ |4|2|アイテム4|
35
+ |5|2|アイテム5|
36
+ |6|2|アイテム6|
37
+ |7|3|アイテム7|
38
+ |8|3|アイテム8|
39
+ |9|3|アイテム9|
40
+
41
+ **datas**
42
+ |id|user_id|title_id|item_id|
43
+ |:--|:--:|:--:|:--:|
44
+ |1|1|1|2|
45
+ |2|1|2|5|
46
+ |3|1|3|8|
47
+
48
+ 以上のデータベースから
49
+ datasより名前1(user_id 1)のデータを以下のように出力し
50
+
51
+ **結果**
52
+ ```php
53
+ $collection = collect([
54
+ ['id' => 1, 'title' => 'タイトル1', 'value' => 2,'name' => 'アイテム2'],
55
+ ['id' => 2, 'title' => 'タイトル2', 'value' => 5,'name' => 'アイテム5'],
56
+ ['id' => 3, 'title' => 'タイトル3', 'value' => 8,'name' => 'アイテム8']
57
+ ]);
58
+ ```
59
+
60
+ 以上の構成であればデーターベースでやれば簡単なのですが、
61
+ それをCollectionで似たようなことが、できないかというのが今回の質問の意図です。
62
+ その上で以下のような質問になりました。
63
+ また理由の1つに、itemsのテーブルがjsonデータに置き換わる場合があった場合方法に悩んでしまいました。
64
+
65
+
66
+ ---
67
+ **質問**
68
+
69
+
10
70
  2つのCollectionを結合して1つのCollectionデータを作成を考えています。
11
71
  ```php
12
72
  $collection_a = collect([

3

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

2019/02/13 04:50

投稿

BlueBits
BlueBits

スコア57

title CHANGED
File without changes
body CHANGED
@@ -1,6 +1,3 @@
1
- 途中で投稿してしまいました。
2
- 修正中です。
3
-
4
1
  ### 前提・実現したいこと
5
2
 
6
3
  LaravelのCollection同士を結合
@@ -14,8 +11,8 @@
14
11
  ```php
15
12
  $collection_a = collect([
16
13
  ['id' => 1, 'value' => 2],
17
- ['id' => 2, 'value' => 1],
14
+ ['id' => 2, 'value' => 5],
18
- ['id' => 3, 'value' => 3],
15
+ ['id' => 3, 'value' => 8],
19
16
  ]);
20
17
 
21
18
  $collection_b = collect([
@@ -28,16 +25,16 @@
28
25
  ],
29
26
  ['id' => 2, 'title' => 'タイトル2',
30
27
  'items'=>[
31
- ['id' => 1, 'name' => 'アイテム1'],
28
+ ['id' => 4, 'name' => 'アイテム4'],
32
- ['id' => 2, 'name' => 'アイテム2'],
29
+ ['id' => 5, 'name' => 'アイテム5'],
33
- ['id' => 3, 'name' => 'アイテム3']
30
+ ['id' => 6, 'name' => 'アイテム6']
34
31
  ]
35
32
  ],
36
33
  ['id' => 3, 'title' => 'タイトル3',
37
34
  'items'=>[
38
- ['id' => 1, 'name' => 'アイテム1'],
35
+ ['id' => 7, 'name' => 'アイテム7'],
39
- ['id' => 2, 'name' => 'アイテム2'],
36
+ ['id' => 8, 'name' => 'アイテム8'],
40
- ['id' => 3, 'name' => 'アイテム3']
37
+ ['id' => 9, 'name' => 'アイテム9']
41
38
  ]
42
39
  ]
43
40
  ]);
@@ -47,8 +44,8 @@
47
44
  ```php
48
45
  $collection_c = collect([
49
46
  ['id' => 1, 'title' => 'タイトル1', 'value' => 2,'name' => 'アイテム2'],
50
- ['id' => 2, 'title' => 'タイトル2', 'value' => 1,'name' => 'アイテム1'],
47
+ ['id' => 2, 'title' => 'タイトル2', 'value' => 5,'name' => 'アイテム5'],
51
- ['id' => 3, 'title' => 'タイトル3', 'value' => 3,'name' => 'アイテム3']
48
+ ['id' => 3, 'title' => 'タイトル3', 'value' => 8,'name' => 'アイテム8']
52
49
  ]);
53
50
  ```
54
51
 

2

誤字修正しました。

2019/02/13 04:13

投稿

BlueBits
BlueBits

スコア57

title CHANGED
File without changes
body CHANGED
@@ -3,7 +3,7 @@
3
3
 
4
4
  ### 前提・実現したいこと
5
5
 
6
- LarvelのCollection同士を結合
6
+ LaravelのCollection同士を結合
7
7
  (イメージとしてはDB left join)
8
8
  そのコマンドがあるかどうか?
9
9
 
@@ -48,11 +48,11 @@
48
48
  $collection_c = collect([
49
49
  ['id' => 1, 'title' => 'タイトル1', 'value' => 2,'name' => 'アイテム2'],
50
50
  ['id' => 2, 'title' => 'タイトル2', 'value' => 1,'name' => 'アイテム1'],
51
- ['id' => 3, 'title' => 'タイトル3', 'value' => 3,'name' => 'アイテム3'],
51
+ ['id' => 3, 'title' => 'タイトル3', 'value' => 3,'name' => 'アイテム3']
52
52
  ]);
53
53
  ```
54
54
 
55
55
  foreachで回す方法しかないのでしょうか?
56
56
 
57
57
  まわりくどい方法は思いつくのですが
58
- larabel自体はまだ始めたばっかで適切なコマンド・方法があるかと思った次第です。
58
+ Laravel自体はまだ始めたばっかで適切なコマンド・方法があるかと思った次第です。

1

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

2019/02/13 04:08

投稿

BlueBits
BlueBits

スコア57

title CHANGED
File without changes
body CHANGED
@@ -1,3 +1,6 @@
1
+ 途中で投稿してしまいました。
2
+ 修正中です。
3
+
1
4
  ### 前提・実現したいこと
2
5
 
3
6
  LarvelのCollection同士を結合
@@ -10,38 +13,46 @@
10
13
  2つのCollectionを結合して1つのCollectionデータを作成を考えています。
11
14
  ```php
12
15
  $collection_a = collect([
13
- ['id' => 1, 'value' => 1],
16
+ ['id' => 1, 'value' => 2],
14
- ['id' => 2, 'value' => 2],
17
+ ['id' => 2, 'value' => 1],
15
18
  ['id' => 3, 'value' => 3],
16
- ['id' => 4, 'value' => 4],
17
19
  ]);
18
20
 
19
21
  $collection_b = collect([
20
- ['id' => 1, 'title' => 'タイトル',
22
+ ['id' => 1, 'title' => 'タイトル1',
23
+ 'items'=>[
24
+ ['id' => 1, 'name' => 'アイテム1'],
25
+ ['id' => 2, 'name' => 'アイテム2'],
26
+ ['id' => 3, 'name' => 'アイテム3']
21
- []
27
+ ]
22
- ],
28
+ ],
29
+ ['id' => 2, 'title' => 'タイトル2',
30
+ 'items'=>[
31
+ ['id' => 1, 'name' => 'アイテム1'],
23
- ['id' => 2, 'value' => 2],
32
+ ['id' => 2, 'name' => 'アイテム2'],
33
+ ['id' => 3, 'name' => 'アイテム3']
34
+ ]
35
+ ],
24
- ['id' => 3, 'value' => 3],
36
+ ['id' => 3, 'title' => 'タイトル3',
37
+ 'items'=>[
25
- ['id' => 4, 'value' => 4],
38
+ ['id' => 1, 'name' => 'アイテム1'],
39
+ ['id' => 2, 'name' => 'アイテム2'],
40
+ ['id' => 3, 'name' => 'アイテム3']
41
+ ]
42
+ ]
26
43
  ]);
27
44
  ```
45
+ 以上の2つのCollectionを以下のように出力を考えています。
28
46
 
47
+ ```php
29
- ### 発生している問題・エラーメッセージ
48
+ $collection_c = collect([
30
-
49
+ ['id' => 1, 'title' => 'タイトル1', 'value' => 2,'name' => 'アイテム2'],
50
+ ['id' => 2, 'title' => 'タイトル2', 'value' => 1,'name' => 'アイテム1'],
51
+ ['id' => 3, 'title' => 'タイトル3', 'value' => 3,'name' => 'アイテム3'],
52
+ ]);
31
53
  ```
32
- エラーメッセージ
33
- ```
34
54
 
35
- ### 該当ソースコード
55
+ foreachで回す方法しかないでしょうか?
36
56
 
37
- ```ここに言語名を入力
38
- ソースコード
39
- ```
40
-
41
- ### 試したこと
42
-
43
- ここに問題に対して試したことを記載してください。
44
-
45
- ### 補足情報(FW/ツールのバージョンなど)
46
-
47
- ここによ詳細な情報を記載してださ
57
+ まわりく方法は思いつくのですが
58
+ larabel自体はまだ始めたばっかで適切なコマンド・方法があるかと思った次第です。