我有问题与我的商店功能在Laravel 9



基本上每次提交表单时,页面都会刷新,并且没有项存储在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());
}

最新更新