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

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

контроллер:

$client = Client::lists('name', 'id'); return View::make('index', compact('client')); 

И заполнить это на мой взгляд так:

Посмотреть:

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

Но как я могу заполнить только записи от клиентов, где group_id = 1, например.

Я пытался:

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

а также

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

Но похоже, что это не работает, и дает мне ошибку «Вызов функции-члена where () для не-объекта»

Любые идеи о том, как заставить его работать?

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

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

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

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

 $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(); 

Также….

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