2017-03-04 1 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 
관련 문제