Foreach внутри формы:: выберите в Laravel 4

Я пытаюсь пройтись по переменной с помощью помощников Laravel, но она выдает ошибку, и когда я делаю то же самое с HTML-тегами, она работает правильно.

{{ Form::select('categoria', array(
        @foreach($enlaceid as $categoria) 
          $categoria->id => $categoria->nombre  {{-- I tryed too with englobing with {{ }}
      )) }} 
      @endforeach

    <select name="categoria">
        @foreach($enlaceid as $categoria) 
        <option value= " {{ $categoria->id }} "> {{$categoria->nombre}} </option>
        @endforeach
    </select>

4 ответа

Использовать lists() метод и передать это вашему Form::select() метод. Вот так:

$categories = Category::lists('name', 'id');

По вашему мнению:

{{ Form::select('category_id', $categories) }}

Если вы хотите использовать foreach laravelcollective в laravel 5.2 или выше, вы можете использовать то же самое, что и @garethDaine, но выше laravel 5.2, вы используете pluck() вместо lists() так как lists() функция была ухудшена в Laravel 5.2.

так в примерах есть:

$banks = Bank::pluck('name', 'id'); 

вместо

$banks = Bank::lists('name', 'id');

тогда в вашей форме просмотра:

{!! Form::select('bank_id', $banks, null, ['class' => 'form-control']) !!}

Примечание: 1-й массив в вашем pluck() будет отображаться на вашем имени <option> а второй будет value="1" как пример.

The answer by Gareth Daine edited by Drew Hammond worked for me, with a slight edit

Мой контроллер

$category = Category::all();

Мой взгляд

{!! Form::select('category_id', $categories->pluck('name', 'id')) !!}

Если вы хотите добавить значение по умолчанию также к вашим опциям, вам нужно сделать это:

$categories = Category::lists('name', 'id')->toArray();

По вашему мнению:

{{ Form::select('category_id', array('0' => 'Default') + $categories) }}
Другие вопросы по тегам