回答編集履歴

1

コード部分を色付で見やすく変更

2022/04/16 03:58

投稿

Y0shito
Y0shito

スコア3

test CHANGED
@@ -1,39 +1,20 @@
1
1
  yh1244様の提示いただいたコードを元に、拙作ではありますが以下のコードで実装し直しました。
2
-
3
2
  これにより大幅な省コード化、検索語句が増えても対応できるようになりました。
4
-
5
- ```laravel
3
+ ```PHP
6
-
7
4
  public function search(Request $request)
8
-
9
5
  {
10
-
11
6
  $query = Article::newQuery();
12
-
13
7
  $words = preg_split('/[\p{Z}\p{Cc}]++/u', $request->search, 3, PREG_SPLIT_NO_EMPTY);
14
8
 
15
-
16
-
17
9
  foreach ($words as $word) {
18
-
19
10
  if (preg_match('/-/', $word) == 0) {
20
-
21
11
  $query->where('title', 'like', "%$word%");
22
-
23
12
  } else if (preg_match('/-/', $word) == 1) {
24
-
25
13
  $query->where('title', 'not like', '%' . preg_replace('/-/', '', $word) . '%');
26
-
27
14
  }
28
-
29
15
  }
30
16
 
31
-
32
-
33
17
  $article = $query->paginate(7);
34
-
35
18
  return view('layouts.result', ['items' => $article,]);
36
-
37
19
  }
38
-
39
20
  ```