techpitで学んだことをここに綴る


### Laravel：ルーティングの一覧を表示するコマンド

```:ルーティングの一覧を表示するコマンド
$ docker-compose exec workspace php artisan route:list
```


```
+--------+----------+------------------------+------------------+------------------------------------------------------------------------+--------------+
| Domain | Method   | URI                    | Name             | Action                                                                 | Middleware   |
+--------+----------+------------------------+------------------+------------------------------------------------------------------------+--------------+
|        | GET|HEAD | /                      |                  | App\Http\Controllers\ArticleController@index                           | web          |
|        | GET|HEAD | api/user               |                  | Closure                                                                | api,auth:api |
|        | GET|HEAD | login                  | login            | App\Http\Controllers\Auth\LoginController@showLoginForm                | web,guest    |
|        | POST     | login                  |                  | App\Http\Controllers\Auth\LoginController@login                        | web,guest    |
|        | POST     | logout                 | logout           | App\Http\Controllers\Auth\LoginController@logout                       | web          |
|        | GET|HEAD | password/confirm       | password.confirm | App\Http\Controllers\Auth\ConfirmPasswordController@showConfirmForm    | web,auth     |
|        | POST     | password/confirm       |                  | App\Http\Controllers\Auth\ConfirmPasswordController@confirm            | web,auth     |
|        | POST     | password/email         | password.email   | App\Http\Controllers\Auth\ForgotPasswordController@sendResetLinkEmail  | web          |
|        | GET|HEAD | password/reset         | password.request | App\Http\Controllers\Auth\ForgotPasswordController@showLinkRequestForm | web          |
|        | POST     | password/reset         | password.update  | App\Http\Controllers\Auth\ResetPasswordController@reset                | web          |
|        | GET|HEAD | password/reset/{token} | password.reset   | App\Http\Controllers\Auth\ResetPasswordController@showResetForm        | web          |
|        | GET|HEAD | register               | register         | App\Http\Controllers\Auth\RegisterController@showRegistrationForm      | web,guest    |
|        | POST     | register               |                  | App\Http\Controllers\Auth\RegisterController@register                  | web,guest    |
+--------+----------+------------------------+------------------+------------------------------------------------------------------------+--------------+
```

### Laravel：route関数
与えられた名前付きルートのURLを返します。

[名前付きルートへのURLを生成する - Laravel公式](https://readouble.com/laravel/6.x/ja/routing.html#named-routes)

名前付きルートとは何かというと、2章のパート2でphp artisan route:listによって表示された表の、Name列に値のあるルートのことです。

### @ csrf

HTMLに変換されると以下な感じ

```html
<input type="hidden" name="_token" value="xwwDXDKEEnPoCZMF2xMWDtCbpeQgCSNNVIINugCA">
```

valueの値は毎回変わります。
csrfは、Cross-Site Request Forgeries(クロスサイト・リクエスト・フォージェリ)というWebアプリケーションの脆弱性の略称


### old関数
old関数は、引数にパラメータ名を渡すと、直前のリクエストのパラメータを返します。

### $errors変数
Laravelでは、Bladeの中で$errors変数を使えます。
$errors変数は、Illuminate\Support\MessageBagクラスのインスタンスであり、バリデーションエラーメッセージを配列で持っています。

以下のコードでは、MessageBagクラスのanyメソッドを使っていますが、これはエラーメッセージの有無を返します。


### tinker
tinkerは、Laravelに用意された機能のひとつで、コマンドラインでPHPのコードを実行できます。

### remember meトークン

```html

<input type="hidden" name="remember" id="remember" value="on">
```

上記のinputタグは、世の中のWebサービスのログイン画面によく登場する、

* 次回から自動でログインする


という説明がされたチェックボックスに相当するものとなります。
ただし、type属性をcheckboxではなくhiddenとすることでユーザーが直接操作できない隠し項目とし、value属性をonとすることで常にチェックが入ったのと同じ状態にしています。

### docker起動

```
$ docker-compose up -d workspace nginx php-fpm postgres mailhog
```


### トランスパイルの実行

```
docker-compose exec workspace npm run watch-poll
```