基本上每次提交表单时,页面都会刷新,并且没有项存储在DB中。代码如下:
PodcastController
public function store(Request $request) {
$request->validate([
'title' => 'required',
'description' => 'required',
'image' => 'image|mimes:jpeg,png,jpg,webp|max:2048',
'audio' => 'audio|mimes:audio/mpeg',
'category' => 'required',
]);
if ($request->image) {
$imageName = uniqid() . '.' . $request->image->extension();
$request->image->move(public_path('podcast/images'), $imageName);
}
if ($request->audio) {
$audioName = uniqid() . '.' . $request->audio->extension();
$request->audio->move(public_path('podcast/audios'), $audioName);
}
Podcast::create([
'title' => $request->title,
'description' => $request->description,
'image' => $imageName,
'audio' => $audioName,
'category' => $request->category,
]);
return redirect()->route('podcast.list')->with('Success', 'Podcast Created!');
}
路线Route::resource(
'podcasts',
AppHttpControllersPodcastController::class
);
create.blade.php
@extends('layouts.app')
@section('content')
<div class="container">
<div class="col-md-6">
<form action="{{ route('podcasts.store') }}" method="POST" enctype=multipart/form-data>
@csrf
<input class="form-control" type="text" name="title" placeholder="title">
<input class="form-control mt-4" type="textarea" name="description" placeholder="description">
<select name="category" class="form-control mt-4">
<option value="select" disabled>Are you a Creator or a User?</option>
<option value="news">News</option>
<option value="music">Music</option>
</select>
<label for="image" class="mt-3">Image</label>
<input type="file" class="form-control" id="image" name="image">
<label for="audio" class="mt-3">Audio</label>
<input type="file" class="form-control" id="video" name="audio">
<button type="submit" class="btn btn-primary mt-3">Submit</button>
</form>
</div>
</div>
@endsection
每次我运行submit时页面都保持刷新。我不知道问题出在哪里。
您在验证时捕获失败。在捕获这些验证错误之后,您应该开发您的代码要做什么。
https://laravel.com/api/9.x/Illuminate/Validation/ValidationException.html
try {
$request->validate([
'title' => 'required',
'description' => 'required',
'image' => 'image|mimes:jpeg,png,jpg,webp|max:2048',
'audio' => 'audio|mimes:audio/mpeg',
'category' => 'required',
]);
} catch (IlluminateValidationValidationException $e) {
// do something...
dd($e->errors());
}