Laravel で MariaDB の CRUD (その 3)

## こちらのページの続きです。
>[Laravel で MariaDB の CRUD (その 2)](https://qiita.com/ekzemplaro/items/0d16244838f3763592ec)
詳細ページを作成します。

<ol>
<li>ルーティングを確認</li>
> articles.show があることを確認

```bash
php artisan route:list
```

```text
$ php artisan route:list
+--------+-----------+-------------------------+------------------+-------------------------------------------------+------------+
| Domain | Method    | URI                     | Name             | Action                                          | Middleware |
+--------+-----------+-------------------------+------------------+-------------------------------------------------+------------+
|        | GET|HEAD  | /                       |                  | Closure                                         | web        |
|        | GET|HEAD  | api/user                |                  | Closure                                         | api        |
|        |           |                         |                  |                                                 | auth:api   |
|        | GET|HEAD  | articles                | articles.index   | App\Http\Controllers\ArticlesController@index   | web        |
|        | POST      | articles                | articles.store   | App\Http\Controllers\ArticlesController@store   | web        |
|        | GET|HEAD  | articles/create         | articles.create  | App\Http\Controllers\ArticlesController@create  | web        |
|        | GET|HEAD  | articles/{article}      | articles.show    | App\Http\Controllers\ArticlesController@show    | web        |
|        | PUT|PATCH | articles/{article}      | articles.update  | App\Http\Controllers\ArticlesController@update  | web        |
|        | DELETE    | articles/{article}      | articles.destroy | App\Http\Controllers\ArticlesController@destroy | web        |
|        | GET|HEAD  | articles/{article}/edit | articles.edit    | App\Http\Controllers\ArticlesController@edit    | web        |
+--------+-----------+-------------------------+------------------+-------------------------------------------------+------------+
```

<li>一覧ページに詳細ページへのリンクをつける</li>

```php:resources/views/articles/index.blade.php
{{-- layoutsフォルダのapplication.blade.phpを継承 --}}
@extends('layouts.application')

{{-- @yield('title')にテンプレートごとにtitleタグの値を代入 --}}
@section('title', '記事一覧')

{{-- application.blade.phpの@yield('content')に以下のレイアウトを代入 --}}
@section('content')
<table>
 @foreach ($articles as $article)
        <tr>
    <td>{{$article->title}}</td>
    <td>{{$article->body}}</td>
        <td><a href="/articles/{{$article->id}}">詳細を表示</a></td>
        </tr>
  @endforeach
</table>
@endsection
```

<li>show アクションの編集</li>

```php:app/Http/Controllers/ArticlesController.php
// 略
    public function show($id)
    {
 // 引数で受け取った$idを元にfindでレコードを取得
  $article = Article::find($id);
  // viewにデータを渡す
  return view('articles.show', ['article' => $article]);
    }
// 略
```

<li>詳細ページのビューを作成</li>

```php:resources/views/articles/show.blade.php
{{-- layoutsフォルダのapplication.blade.phpを継承 --}}
@extends('layouts.application')

{{-- @yield('title')にテンプレートごとの値を代入 --}}
@section('title', '記事詳細')

{{-- application.blade.phpの@yield('content')に以下のレイアウトを代入 --}}
@section('content')
  <h1>{{$article->title}}</h1>
  <p>{{$article->body}}</p>
  <br><br>
  <a href="/articles">一覧に戻る</a>
@endsection
```

<li>サーバーを起動してブラウザーで確認</li>

```bash
php artisan serve
```

>http://localhost:8000/articles
![laravel_jun1403.png](https://qiita-image-store.s3.amazonaws.com/0/179446/1d29beb3-e318-6579-b140-714ddfa2300e.png)

>詳細表示をクリックすると
![laravel_jun1404.png](https://qiita-image-store.s3.amazonaws.com/0/179446/2ecc5c05-2b5f-c46d-e59f-fb783e96d4cb.png)

</ol>

## 確認したバージョン

```text
$ php artisan --version
Laravel Framework 10.37.3
```

## 次のページ
[Laravel で MariaDB の CRUD (その 4 Create)](https://qiita.com/ekzemplaro/items/50d48c623fb339976a5c)