Laravel: как заполнить blade SELECT значениями из инструкции where

Я понимаю, что вы можете отправлять значения в оператор select следующим образом:

5 ответов


списки () должны быть вызваны наконец

$client = Client::where('group_id','=', 1)->lists('name','id');

Я нашел ответ, который работал для меня:

используйте fluent вместо красноречивого, который будет выглядеть примерно так:

$client = DB::table('clients')->where('group_id', 1)->lists('name');
return View::make('index', compact('client'));

тогда, на ваш взгляд, просто назовите его внутри тегов формы лезвия следующим образом:

{{ Form::select('client_id', $client, Input::old('client_id')) }}

@KyleK, спасибо за попытку помочь.


:

$client = Client::where('group_id', 1)->pluck('name', 'id');

вид:

{!! Form::select('client_id', $client, Input::old('client_id'), ['class'=> 'form-control'])  !!}

результат:

<select id="client_id" class="form-control" name="client_id">
  <option value="1">John</option>
  <option value="2">Karen</option>
</select>

Это тоже сработает

Client::where('group_id','=', 1)->lists('name');

Не уверен, что это опечатка или нет, но вы не повторяете должным образом,

эта строка должна быть...

    $client = Client::lists('name', 'id')->where('group_id','=', 1)->get();

тоже....

иногда при заполнении списков вы получаете модели, и их легко передать, но иногда вы получаете массивы (fluent , raw и т. д.), и в этих случаях вам нужно получить доступ вручную и построить форму с HTML, потому что вы должны получить к ней доступ по-разному.