首页 > 解决方案 > 从 Laravel 的动态下拉列表中获取 ID 以在 CRUD 控制器中使用

问题描述

我正在使用 CRUD 控制器,试图创建一个人。一个人属于一个国家,我已经正确建立了这种关系。

在我的创建视图中,我有用于用户输入的文本框,以及通过查询 Country 表创建的动态下拉菜单。

我的错误是当我去创建一个人时,我收到一个错误 - 一般错误:1364 字段“country_id”没有默认值。

我知道这是因为我没有在 country_id 中插入任何内容,因为我根本不知道如何从 Country 动态下拉列表中获取 ID。

在我的 create.blade.php 我有:

    {{csrf_field()}}
    {{method_field('POST')}}
    <div>
    <input type="text" name="name" placeholder="Name"> <br>
    <input type="text" name="age" placeholder="Age"> <br>
    <input type="text" name="role" placeholder="Role"> <br>
    <input type="text" name="batting" placeholder="Batting"> <br>
    <input type="text" name="bowling" placeholder="Bowling"> <br>
    <input type="text" name="odiRuns" placeholder="Odi Runs"> <br>
    <input type="text" name="image" placeholder="Image name"> <br>
    <label>Select a country:</label>
                <select name="country" class="form-control" style="width:350px">
                    <option value="">--- Select Country ---</option>
                    @foreach ($countries as $country => $value)
                        <option value="{{ $country }}">{{ $value->name }}</option>
                    @endforeach
                </select>
    </div>
    <button type="submit" class="button">Create a player</button>
    </div>
    </form>

在我的控制器中,我有 -

        $players = new Player();

        $players->name = request('name');
        $players->age = request('age');
        $players->role = request('role');
        $players->batting = request('batting');
        $players->bowling = request('bowling');
        $players->odiRuns = request('odiRuns');
        $players->image = request('image');
        $players->country_id = request('???');

        $players->save();

有谁知道我如何从动态下拉列表中获取 country_id 值?谢谢

标签: phplaravellaravel-blade

解决方案


不应该是$players->country_id = request('country');因为选择选项名称是国家


推荐阅读