Laravel-如何创建一个下拉列表并根据数据库值选择特定条目

时间:2019-02-04 01:38:31

标签: laravel laravel-blade

我有2种情况,但最简单的情况如下: 数据库列中填充有代表时间的字符串(例如,班级4:30)。用户添加新条目时,用户将从下拉菜单中选择时间。在编辑时,将从控制器以及要编辑的数据库行传递下拉数据($ classtime和扩展名$ classtime-> start_time,其中包含用户选择的原始值... 04:30)。相关代码为:

$classtime = Classtime::find($id);    /* get the db row to be edited */
$data = array(
                'clubs' => Club::all(),
                'start_times' => [
                    '09:00','09:30','10:00','10:30','11:00','11:30','12:00','12:30','01:00','01:30','02:00','02:30','03:00','03:30','04:00','04:30','05:00','05:30','06:00','06:30','07:00','07:30','08:00','08:30', 
                ],);

添加新条目(例如)04:30作为字符串存储在“ start_time”字段中。是时候编辑条目了,我希望下拉列表显示04:30作为所选值。 在构建视图中的列表时,我具有以下内容:

@foreach($data['start_times'] as $stime)
         <option value="{{ $stime }}">{{ $stime }}</option>
@endforeach

我还有$ classtime作为数据库记录。

我的问题是: 如何将$ stime(数组元素)与数据库行中的当前值进行比较 ($ classtime-> start_time),然后根据相等的比较,在选项中插入“ selected”? 我以为这是一个普遍的问题,但是我找不到与之匹配的任何东西,也无法从我发现的答案中得出解决方案。 任何帮助,将不胜感激。 干杯 杰夫

1 个答案:

答案 0 :(得分:0)

您可以这样做:

@foreach($data['start_times'] as $stime)
     <option value="{{ $stime }}" @if(App\Classtime::latest()->first()->start_time === $stime) selected @endif>{{ $stime }}</option>
@endforeach