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) }}