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

質問編集履歴

1

質問内容がわかりにくかった為

2021/06/29 02:44

投稿

Yutaka-kamei
Yutaka-kamei

スコア4

title CHANGED
@@ -1,1 +1,1 @@
1
- リレーション先検索機能
1
+ groupBy記述方法について
body CHANGED
@@ -1,83 +1,38 @@
1
- 現在検索機能でカスタマーの名前メモなどの情報から検索きるようにはなっております。ここからリレーション先の情報からも検索できるようにしたです。(検索欄はもうひと作ります。
1
+ 現在検索機能実装中で、groupByを使いデータを表示したいです。自分なり調べて記述てみですが上手くいかなかったのでgroupByの記述方法にいてアドバイスお願い致します。
2
- 子テーブル(detailsテーブル)にmenuというカラムがあります。検索機能でmenuから引っ張ってきたいです。
3
2
 
4
- joinなどでテーブルを繋げて試してみたのですが上手くいきませんでした。
3
+
5
- アドバイスお願い致します。
4
+
6
5
  ```php
7
- <div class="right-content">
6
+
8
- <h1>お客様検索</h1>
7
+ <h1>メニュー検索</h1>
9
8
  <div class="col-sm-4" style="padding:20px 0; padding-left:0px;">
10
9
  <form class="form-inline" action="{{route('test.input')}}">
11
10
 
12
- <input type="text" name="keyword" value="" class="form-control" placeholder="名前を入力してください">
11
+ <input type="text" name="menuword" value="" class="form-control" placeholder="名前を入力してください">
13
12
  <input type="submit" value="検索" class="btn btn-info">
14
13
  </form>
15
14
  </div>
16
15
 
17
-
18
- @foreach ($items as $item)
19
-
20
-
21
- <div class="frameb" >
22
- <div class="contents">
23
- <div class="mailcontent">
24
- <div class="first-content">
25
- <p class="customer-name">お客様氏名: {{$item['name']}} 様    <a style="font-size:20px;" href="{{route('setting', ['id' => $item['id']])}}">編集</a></p>
26
- </div>
27
-
28
- @if($item['email']==Null)
29
- <p class="group">メールアドレス: 未登録</p>
30
- @else
31
- <p class="group">メールアドレス: {{$item['email']}}</p>
32
- @endif
33
- @if($item['memo']==Null)
34
- <p class="group">メモ: なし</p>
35
- @else
36
- <div class="memo">
37
- <p class="memo-main">メモ:</p>
38
- <p>{!! nl2br ($item['memo'])!!}</p>
39
- </div>
40
- @endif
41
-
42
- </div>
43
- <a href="{{route('detail', ['id' => $item['id']])}}">詳細</a>
44
- </div>
45
- </div>
46
- @endforeach
47
- {{ $items->appends(request()->input())->links('pagination::bootstrap-4') }}
48
- </div>
49
16
 
50
- </div>
51
17
  ```
52
18
 
53
19
  ```php
54
- public function input(Request $request)
20
+
55
- {
56
-
57
-
58
-
59
- $customers_get_query = Customer::latest('id','name','gender','phone','email','memo','created_at');
21
+ $details_get_query =Detail::select('details.menu','customers.name','customers.memo','customers.email','customers.id')->join('customers','details.customer_id','=','customers.id');
60
- // ↑投稿順に表示するため
22
+
23
+
24
+
25
+
61
- if(!empty($request->input('keyword')))
26
+ }if(!empty($request->input('menuword')))
62
27
  {
63
28
 
64
- $keyword = $request->input('keyword');
65
- // ↑inputのname
66
- $customers_get_query->where('name','like','%'.$keyword.'%')->orWhere('memo', 'like','%'.$keyword.'%')->orWhere('email', 'like','%'.$keyword.'%')->orWhere('phone', 'like','%'.$keyword.'%');
67
-
29
+ $menuword = $request->input('menuword');
30
+
31
+ $details_get_query->where('menu','like','%'.$menuword.'%');
32
+
33
+ $items = $details_get_query->paginate(3);
34
+
68
35
  }
36
+ //
69
37
 
70
-
71
-
72
- $items = $customers_get_query->paginate(3);
73
-
74
-
75
- return view('customer.input', [
76
- 'items' => $items,
77
- 'keyword' => $request->input('keyword',""),
78
- ]);
79
-
80
-
81
- }
82
-
83
38
  ```