2017-03-04 20 views
0

我有一個問題表,其中有各種不同輸入類型的問題。在我的播種機的格式是像這樣顯示從數據庫中獲得的表單元素

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' 
]); 

所以你可以看到上面的我有一個文本輸入和值中的一個選擇,這已經連載名單。現在在我的控制器中,我收到問題並將其傳遞給我的觀點。

在我看來,我做類似的東西在哪裏我有困難以下

@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 

與選擇輸入。我將如何去顯示我的選擇以及他們的選項(值)?

感謝

+0

這是一個非常糟糕的設計,您應該更經常地將html與數據庫條目分開。 – Drazxier

+0

然而,當它是一個非常大的形式時,將問題存儲在數據庫中沒有意義嗎?該表格有超過100個字段,通過多個步驟。 –

回答

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 
相關問題