質問編集履歴

1

記載途中で更新されてしまった為

2019/09/25 13:36

投稿

hyou
hyou

スコア10

test CHANGED
File without changes
test CHANGED
@@ -8,7 +8,7 @@
8
8
 
9
9
  この3つのテーブルを結合して検索をしてみたのですが、下記の関係である為、ひとつのordersが複数の商品を持っていた場合、その個数分のレコードが表示されてしまいます。
10
10
 
11
- (受注管理ですのでordersは一意のものが一つでればいいのですが・・・例えばordersが3件しかないのに画面上だとそれ以上の件数に見えてしまうのです。。。)
11
+ (受注管理ですのでは一意のorderが一つでればいいのですが・・・例えばorderが3件しかないのに画面上だとそれ以上の件数に見えてしまいます。。。)
12
12
 
13
13
 
14
14
 
@@ -19,6 +19,8 @@
19
19
 
20
20
 
21
21
  ※以下、DBの情報とControllerの内容です。どなたか知恵をお借りできないでしょうか。
22
+
23
+ また足りない情報が御座いましたら、コメント下さい。
22
24
 
23
25
 
24
26
 
@@ -34,25 +36,7 @@
34
36
 
35
37
  | id | bigint(20) unsigned | NO | PRI | NULL | auto_increment |
36
38
 
37
- | user_id | int(11) | NO | | NULL | |
38
-
39
39
  | order_no | varchar(255) | YES | | NULL | |
40
-
41
- | name | varchar(255) | YES | | NULL | |
42
-
43
- | email | varchar(255) | NO | | NULL | |
44
-
45
- | tel | varchar(255) | YES | | NULL | |
46
-
47
- | prefecture | varchar(255) | YES | | NULL | |
48
-
49
- | address | varchar(255) | YES | | NULL | |
50
-
51
- | postal_cd | varchar(255) | YES | | NULL | |
52
-
53
- | total_quantity | int(11) | YES | | NULL | |
54
-
55
- | amount | decimal(7,2) | YES | | NULL | |
56
40
 
57
41
  | deleted_at | datetime | YES | | NULL | |
58
42
 
@@ -70,11 +54,9 @@
70
54
 
71
55
  | id | bigint(20) unsigned | NO | PRI | NULL | auto_increment |
72
56
 
73
- | item_id | int(11) | NO | | NULL | |
57
+ | item_id | int(11) | NO | | NULL | |
74
58
 
75
59
  | order_id | int(11) | YES | | NULL | |
76
-
77
- | quantity | int(11) | YES | | NULL | |
78
60
 
79
61
  | deleted_at | datetime | YES | | NULL | |
80
62
 
@@ -82,4 +64,64 @@
82
64
 
83
65
 
84
66
 
67
+ //itemsテーブル
68
+
69
+ +---------------+---------------------+------+-----+---------+----------------+
70
+
71
+ | Field | Type | Null | Key | Default | Extra |
72
+
73
+ +---------------+---------------------+------+-----+---------+----------------+
74
+
75
+ | id | bigint(20) unsigned | NO | PRI | NULL | auto_increment |
76
+
77
+ | name | varchar(255) | NO | | NULL | |
78
+
79
+ | type | datetime | YES | | NULL | |
80
+
81
+ | deleted_at | varchar(255) | YES | | NULL | |
82
+
83
+ +---------------+---------------------+------+-----+---------+----------------+
84
+
85
85
  ```
86
+
87
+ ```php
88
+
89
+ //Controller
90
+
91
+
92
+
93
+ public function orderSearchPost(OrderSearchRequest $req){
94
+
95
+
96
+
97
+ //テーブルの結合
98
+
99
+ $query = Order::select('orders.*')
100
+
101
+ ->join('order_items','orders.id','=','order_items.order_id')
102
+
103
+ ->join('items','order_items.item_id','=','item.id');
104
+
105
+
106
+
107
+ //typeの検索
108
+
109
+ if(!$req->filled('check_itemType')) {
110
+
111
+ $query->where('type','<>','A');
112
+
113
+ }
114
+
115
+ $collection=$query->get();
116
+
117
+
118
+
119
+ return view('orderSearch',[
120
+
121
+ "orders" => $collection,
122
+
123
+ ]);
124
+
125
+ }
126
+
127
+ ```