呟きアプリをlaravelで作っているのですが、バリテーションのエラーが表示されません。
手順としてinbokabelのCreateControllerを作り、requestでapp/Http/CreateRequestを作成しました。
phpのバージョンは8.1.8で実行環境についてはdockerを使用しております。
laravelのフレームワークは9.19.0を使用しております。
php
//app/Http/Requests/Tweet/CreateRequest.php <?phpnamespace App\Http\Requests\Tweet;use Illuminate\Foundation\Http\FormRequest;class CreateRequest extends FormRequest{ * Determine if the user is authorized to make this request. * public function authorize() { return true; } * Get the validation rules that apply to the request. * public function rules() { return[ 'tweet' => 'required|max:140' ]; }}
php
//app/Http/Controllers/Tweet/CreateController.php <?phpnamespace App\Http\Controllers\Tweet;use App\Http\Controllers\Controller;use App\Http\Requests\Tweet\CreateRequest;class CreateController extends Controller{ * Handle the incoming request. * public function __invoke(CreateRequest $request) { }}
php
<!doctype html><html lang="ja"> <head> <meta charset="UTF-8"> <meta neme="viewport" content="width=device-widht, user-scalable=no, initial-scalable=1.0, maximum-scale=1.0, minimum-scale=1.0"> <title>つぶやきあぷり</title> </head> <body> <h1>つぶやきアプリ</h1> <div> <p>投稿フォーム</p> <from action="{{ route('tweet.create') }}" method="post"> @csrf <label for="tweet-content">つぶやき</label> <span>140字まで</span> <textarea id="tweet-content" type="text" name="tweet" placeholder="つぶやきを入力"></textarea> @error('tweet') <p style="color: red;">{{$message}}</p> @enderror <button type="submit">投稿</button> </from> </div> </body></html>
php
//routes/web.phpRoute::get('/tweet',\App\Http\Controllers\Tweet\IndexContoroller::class)->name('tweet.index'); Route::post('/tweet/create',\App\Http\Controllers\Tweet\CreateController::class)->name('tweet.create');
空のまま送信するとエラーが起きる、140字以内で記述、この二つのエラーを表示したいのですが、そもそもRequests/Tweet/CreateRequest.phpで記述した140字以内でのエラーが表示されていません。
初歩的な質問なのですが、ご教示ください。
0 コメント