显示从数据库获取的表单元素

时间:2017-03-04 21:34:21

标签: laravel laravel-5.2

我有一个问题表,其中包含不同输入类型的各种问题。我的播种机中的格式是这样的

 DB::table('questions')->insert([
            'name' => 'name',
            'type' => 'text',
            'text' => 'Name',
]);

DB::table('questions')->insert([
            'name' => 'title',
            'type' => 'select',
            'text' => 'Title',
            'values' => serialize(['Mr', 'Mrs', 'Ms']),
            'class' => 'selectpicker'
]);

所以你可以看到上面我有一个文本输入和一个select,它有序列化的值列表。现在在我的控制器中,我得到了问题并将其传递给我。

在我看来,我正在做类似以下的事情

@foreach($questions as $q)
    <div class="col-xs-12">
        <input type="{{ $q["type"] }}" 
                class="form-control {{ $q["class"] }}"
                id="{{ $q["name"] }}" 
                name="questions[{{ $q["id"] }}]"
        >
    </div>
@endforeach

我遇到困难的地方是选择输入。我如何显示我的选择及其选项(值)?

由于

1 个答案:

答案 0 :(得分:1)

要创建列表,您可以检查foreach中$q的类型。循环中的代码如下所示:

@if( $q['type'] === 'select' )
    <select name="questions[{{ $q['id'] }}]">
        @foreach( unserialize($q['values']) as $v )
            <option value="{{ $v }}">{{ $v }}</option>
        @endforeach
    </select>
@endif