Fom::select in laravel 默认为空

问题描述

我正在尝试在 Laravel 中创建一个表单选择。

我是完美的,但在我看来,第一个选项是 0 并且第一个选项是空的

enter image description here

我需要删除这个 0 和选项为空,但我不知道我该怎么做,这是我的实际代码

<div class="form-group row ">
        {!! Form::label('restaurant_id',trans("lang.blog_restaurant_id"),['class' => 'col-3 control-label text-right']) !!}
        <div class="col-9">
            {!! Form::select('restaurant_id',[null => null,$restaurant],null,['class' => 'select2 form-control']) !!}
            <div class="form-text text-muted">{{ trans("lang.blog_restaurant_id_help") }}</div>
        </div>
    </div>

$restaurant 这是一个数据数组,用于填充我的选择。我读到第一个选项 null 将所选选项设为空,但生成一个空选项和 0。

谢谢你的帮助。

更新

Laravel 将 optgroup 包含到 Form::select 中,它触发了我的 0 这就是问题所在。我需要删除 optgroup

  <select class="select2 form-control select2-hidden-accessible" id="restaurant_id" name="restaurant_id" tabindex="-1" aria-hidden="true">
<option value="" selected="selected"></option>

    <optgroup label="0">
    
        <option value="17">Foody Lindgren,Cremin and Erdman gdfgfg fgfg fg fgfg g fggf</option>
        <option value="28">restaurante de pruebas</option>
        <option value="29">probando</option>
        <option value="30">pincho de castilla2</option>
    
    </optgroup>

更新 2

获取餐厅列表:

$restaurant = $this->restaurantRepository->pluck('name','id');

这是刀片的结果:

{"17":"Foody Lindgren,Cremin and Erdman gdfgfg fgfg fg fgfg g fggf","28":"restaurante de pruebas","29":"probando","30":"pincho de castilla2"}

添加到数组():

$restaurant = $this->restaurantRepository->pluck('name','id');
$restaurant->toArray();

相同的结果

解决方法

请试试这个。添加空白键和空白值,如下所示。

{!! Form::select('restaurant_id',["" => "",$restaurant],null,['class' => 'select2 form-control']) !!}
,

看来 $restaurant 是一个数组。 所以,你最好这样做:

Form::select('restaurant_id',$restaurant,['class' => 'select2 form-control'])

您可能需要为您的控制器中的 $restaurant 进行适当的映射,具体取决于您的需要,例如在开头添加一个空选项。

// in Controller
$options = ["" => "select"] + $restaurant;

// In view
Form::select('restaurant_id',$options,['class' => 'select2 form-control'])

更新 2

您应该确保将 $restaurant 作为数组发送:

$restaurant = $this->restaurantRepository->pluck('name','id')->toArray();

用于添加空选项:

$restaurant = ["" => "select"] + $restaurant;

还有一个选择: 您甚至可以手动添加选择框,而不是使用 Form::select

<select class="select2 form-control" id="restaurant_id" name="restaurant_id">
    <option value="" selected="selected"></option>
    @foreach($restaurant as $value => $option)
    <option value="{{ $value }}">{{ $option }}</option>
    @endforeach
</select>