Php Laravel:如何使用where语句中的值填充刀片选择
我知道您可以将值发送到如下select语句:Php Laravel:如何使用where语句中的值填充刀片选择,php,laravel,laravel-4,Php,Laravel,Laravel 4,我知道您可以将值发送到如下select语句: $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')) }} 控制器: $client = Client::lists('name',
$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')) }}
控制器:
$client = Client::lists('name', 'id');
return View::make('index', compact('client'));
$client = Client::where('group_id', 1)->pluck('name', 'id');
并在我的视图中这样填充:
视图:
但我如何仅填充来自客户机的记录,例如group_id=1
我试过:
$client = Client::lists('name', 'id')->where('group_id', 1)->get();
及
但它似乎不是这样工作的,它给了我一个错误“对非对象调用成员函数where()”
关于如何让它工作有什么想法吗?不确定这是否是一个打字错误,但您没有正确地检索 这条线应该是
$client = Client::lists('name', 'id')->where('group_id','=', 1)->get();
还有
有时在填充列表时,你会得到模型,传递它们很容易,但有时你会得到数组(fluent、raw等),在这些情况下,你必须手动访问,并用HTML构建表单,因为你必须以不同的方式访问它 我找到了一个适合我的答案: 使用流利而不是雄辩,这看起来像这样:
$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')) }}
然后在您的视图中,只需将其称为刀片形状标记内部,如下所示:
$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,谢谢你的帮助。最后必须调用lists()
$client = Client::where('group_id','=', 1)->lists('name','id');
这也行
Client::where('group_id','=', 1)->lists('name');
控制器:
$client = Client::lists('name', 'id');
return View::make('index', compact('client'));
$client = Client::where('group_id', 1)->pluck('name', 'id');
视图:
结果:
<select id="client_id" class="form-control" name="client_id">
<option value="1">John</option>
<option value="2">Karen</option>
</select>
约翰
凯伦
如果您喜欢使用Laravel的查询生成器(例如出于性能原因):
或者,使用选择仅提取所需内容:
$clients = DB::table('clients')->select('name', 'id')->get()->pluck('name', 'id')->toArray();
return view('index', compact('clients'));
在你看来:
{!! Form::label('client_id', 'Client') !!}
{!! Form::select('client_id', $clients, old('client_id')) !!}
您好,谢谢您的回答-我在“调用非对象上的成员函数where()”时遇到了一个错误,您知道这是为什么吗?它发出的信号是你上面建议的线路。@kylek如果我有一个id数组,它就不工作了。('group_id','=',$id)此处,$id包含[1,2,3,]。怎么办?直接按名称调用表不是一种坏做法吗?是的,应该在这里使用该模型。另外,lists()
现在已不推荐使用。Adrian的答案更好。列表
现在不推荐使用pluck
lists()
现在不推荐使用。阿德里安的答案更好。