Laravel From Scratch part. 3
Section 5 Forms
The Seven Restful Controller Actions
記事の更新や削除などのメソッドを定義します。
Restful Routing
RESTというかHTTPのメソッドについて考えます。
押さえておきたいHTTPメソッドのPOSTとPUTの違い | まさきの図書館
Form Handling
記事を追加するときのURLがarticles/createなので、個別記事のURLであるarticles/***と被ってしまいます。
Route::get('/articles', 'ArticlesController@index'); Route::get('/articles/create', 'ArticlesController@create'); Route::get('/articles/{article}', 'ArticlesController@show');
cssはBulmaを使います。
Bulma: Free, open source, and modern CSS framework based on Flexbox
新しい記事を追加できることを実際に確認します。
Forms That Submit PUT Requests
記事の更新では記事を追加するときのページのレイアウトを利用します。記事のIDを用いてデータベースから記事のタイトルなどを出力します。そうすることで投稿した時の状態を再現できます。
HTMLのフォームからPUTメソッドを利用できないので、Laravelでは
<form method="POST" action="/articles/{{ $articles->id }}"> @csrf @method('PUT') <div class="field"> <label class="label" for="title">Title</label> <div class="control"> <input class="input" type="text" name="title" id="title" value={{ $article->title }}> </div> </div> </form>
のように記述します。
Laravel View表示におけるview()とredirect()の違いについて - Qiita
https://blog.e2info.co.jp/2018/04/21/laravel_form_put_patch_delete/
Form Validation Essentials
タイトルや本文などが空白であるときに投稿や更新を行わないようにするために、バリデーションを行います。
また不正な投稿であるとき画面の遷移を行わず?に、old関数を使って復元するようにします。