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

回答編集履歴

1

追記

2020/02/10 10:07

投稿

退会済みユーザー
answer CHANGED
@@ -4,4 +4,50 @@
4
4
 
5
5
  ```php
6
6
  $items = sample::where('title', 'like', '%'.$request->get('keyword').'%')->get();
7
- ```
7
+ ```
8
+
9
+ ---
10
+
11
+ web.php
12
+
13
+ ```
14
+ @foreach (range('a', 'z') as $i)
15
+ <a href="{{ url('/posts/az') }}" name="keyword">{{ $i }}</a>
16
+ @endforeach
17
+ ```
18
+
19
+ こう設定していると、全てのリンクは `posts/az` となって `a` ~ `z` を区別するものが何も設定されていないことは理解していますか?
20
+
21
+ a を指定した時、`posts/az/a`、b なら `posts/az/b` というように、区別してアクセスしないと、コントローラーに処理を書いても意味がないですよね?
22
+
23
+ ですので、一例ですが、
24
+
25
+ web.php
26
+
27
+ ```php
28
+ Route::get('/posts/az/{initial}', 'PostsController@az')->name('posts.az');
29
+ ```
30
+
31
+ というように設定し、コントローラーでは、
32
+
33
+ ```php
34
+ class SampleController extends Controller
35
+ {
36
+ public function az(Request $request, string $initial){
37
+ $items = Sample::where('title', 'like', $initial . '%')->get();
38
+ return view('posts.test', compact('items'));
39
+ }
40
+ }
41
+ ```
42
+
43
+ となる。
44
+
45
+ また、bladeの方も仕様に合わせて、
46
+
47
+ ```php
48
+ @foreach (range('a', 'z') as $i)
49
+ <a href="{{ route('posts.az', ['initial' => $i]) }}">{{ $i }}</a>
50
+ @endforeach
51
+ ```
52
+
53
+ とでも設定しておけばよかろう。