首页 > 解决方案 > 从选择中恢复数据并将其发送到数据库

问题描述

我最近刚开始使用laravel,但遇到了问题。

我在“表单”中有一个“选择”,我想检索选定的数据并将其保存在数据库中。

不幸的是,我的印象是没有选择数据

这是选择:

 <div class="input-group mb-3 ">
        <select class="custom-select @error ('category') is-invalid @enderror" id="category">
            @foreach ($categories as $category)
            <option value={{ $category->id}}>{{ $category->name}}</option>
            @endforeach
        </select>
        @error('category')
            <div class="invalid-feedback">
                {{$errors->first('category')}}
            </div>
        @enderror
    <div class="input-group-append">

这是控制器:

$request->validate([
        'title' => 'required|min:5',
        'content' => 'required|min:10',
        'image' => 'mimes:jpg,jpeg,png,gif,bmp',
        'category' => 'required'
    ]);

    $topic = new Topic();

    $topic->title = $request->input('title');
    $topic->content = $request->input('content');

    $id = DB::table('categories')->where('name', $request->input('category'))->value('id'); //get the category id
    $topic->categorie_id = $id;

这是错误:

错误选择

标签: phphtmlsqllaravel

解决方案


您需要在您的 中添加一个 name="category" <select>,否则它不是由表单发送的。

<select name="category" class="custom-select @error ('category') is-invalid @enderror" id="category">
    @foreach ($categories as $category)
    <option value={{ $category->id}}>{{ $category->name}}</option>
    @endforeach
</select>

推荐阅读