2023-07-02から1日間の記事一覧

改行が反映されるようにする

【show.blade.php】 <p>{!! nl2br(e($post->body)) !!}</p> 参考:ドットインストール『Laravel 8入門 CRUD処理編』

独自クラスを作り、重複コードをなくす

./vendor/bin/sail artisan make:request ○○Request 【○○Request.php】 public function authorize() { return true; } public function rules() { return [ 'title' => 'required|min:3', 'body' => 'required', ]; } public function messages() { return …

入力した値を検証

【Controller.php】 public function store(Request $request) { $request->validate([ 'title' => 'required|min:3', 'body' => 'required', ], [ 'title.required' => 'タイトルは必須です', 'title.min' => ':min 文字以上入力してください', 'body.requi…

削除前にダイアログ表示

【show.blade.php】①<form method="post" action="{{ route('posts.destroy', $post) }}" id="delete_post"> ② <script> 'use strict'; { document.getElementById('delete_post').addEventListener('submit', e => { e.preventDefault(); if (!confirm('Sure to delete?')) { return; } e.target.submit(); }); } </script></form>

削除

【Controller.php】 public function destroy(Post $post) { $post->delete(); return redirect() ->route('posts.index'); } 【show.blade.php】 <form method="post" action="{{ route('posts.destroy', $post) }}"> @method('DELETE') @csrf 【routes/web.php】Route::delete('/posts/{post}/destroy', [PostController::cla</form>…

編集

【show.blade.php】 <h1> <span>{{ $post->title }}</span> <a href="{{ route('posts.edit', $post) }}">[Edit]</a> </h1> 【edit.blade.php】<form method="post" action="{{ route('posts.update', $post) }}"> @method('PATCH') <input type="text" name="title" value="{{ old('title', $post->title) }}"></form>

保存

【create.blade.php】<form method="post" action="{{ route('posts.store') }}"> 【Controller.php】 public function store(Request $request) { $post = new Post(); $post->title = $request->title; $post->body = $request->body; $post->save(); return redirect() ->route('posts.index'); } 【routes/web.php</form>…

CSRF対策

<form method="post" action=""> @csrf 参考:ドットインストール『Laravel 8入門 CRUD処理編』</form>

パラメーターとして数値しか受け付けないという制限をつける

Route::get('/posts/{post}', [PostController::class, 'show']) ->name('posts.show') ->where('post', '[0-9]+'); 参考:ドットインストール『Laravel 8入門 CRUD処理編』