bor*_*Blu 48 php laravel blade laravel-5
我想使用illuminate\html创建一个类似下面的选择框:
<select>
<option value="$item->id">$item->name</option>
<option value="$item->id">$item->name</option>
</select>
Run Code Online (Sandbox Code Playgroud)
在我的控制器中我尝试了这个:
public function create()
{
$items = Items::all(['id', 'name']);
return view('prices.create', compact('id', 'items'));
}
Run Code Online (Sandbox Code Playgroud)
在我看来这个:
<div class="form-group">
{!! Form::Label('item', 'Item:') !!}
{!! Form::select('item_id', $items, null, ['class' => 'form-control']) !!}
</div>
Run Code Online (Sandbox Code Playgroud)
问题是,而不是$item->name
显示实体的所有信息.
min*_*noz 96
Laravel提供了一个带有lists()函数的查询生成器
在您的情况下,您可以替换您的代码
$items = Items::all(['id', 'name']);
Run Code Online (Sandbox Code Playgroud)
同
$items = Items::lists('name', 'id');
Run Code Online (Sandbox Code Playgroud)
此外,您还可以将其与其他查询生成器链接.
$items = Items::where('active', true)->orderBy('name')->lists('name', 'id');
Run Code Online (Sandbox Code Playgroud)
来源:http://laravel.com/docs/5.0/queries#selects
Laravel 5.2的更新
非常感谢@jarry.正如您所提到的,Laravel 5.2的功能应该是
$items = Items::pluck('name', 'id');
Run Code Online (Sandbox Code Playgroud)
要么
$items = Items::where('active', true)->orderBy('name')->pluck('name', 'id');
Run Code Online (Sandbox Code Playgroud)
ref:https://laravel.com/docs/5.2/upgrade#upgrade-5.2.0 - 查看Deprecations列表
lew*_*s4u 23
Laravel> = 5.3方法列表()已弃用 pluck()
$items = Items::pluck('name', 'id');
{!! Form::select('items', $items, null, ) !!}
Run Code Online (Sandbox Code Playgroud)
这将为您提供一个选择框,其中包含与DB中的ID编号相同的选项
例如,如果您在数据库表中有这个:
id name
1 item1
2 item2
3 item3
4 item4
Run Code Online (Sandbox Code Playgroud)
在选择框中它将是这样的
<select>
<option value="1">item1</option>
<option value="2">item2</option>
<option value="3">item3</option>
<option value="4">item4</option>
</select>
Run Code Online (Sandbox Code Playgroud)
我发现pluck现在返回一个集合,你需要在pluck结束时添加 - > toArray()......所以这样: pluck('name', 'id')->toArray();
Soh*_*415 20
只需将您的控制器更改为以下内容:
public function create()
{
$items = Subject::all(['id', 'name']);
return View::make('your view', compact('items',$items));
}
Run Code Online (Sandbox Code Playgroud)
您的观点是:
<div class="form-group">
{!! Form::Label('item', 'Item:') !!}
<select class="form-control" name="item_id">
@foreach($items as $item)
<option value="{{$item->item_id}}">{{$item->id}}</option>
@endforeach
</select>
</div>
Run Code Online (Sandbox Code Playgroud)
希望这能解决你的问题
调节器
$campaignStatus = Campaign::lists('status', 'id');
Run Code Online (Sandbox Code Playgroud)
compact('campaignStatus')将导致[id => status]; //示例[1 =>'待定']
return view('management.campaign.index', compact('campaignStatus'));
Run Code Online (Sandbox Code Playgroud)
视图
{!! Form::select('status', $campaignStatus, array('class' => 'form-control')) !!}
Run Code Online (Sandbox Code Playgroud)
Laravel使用数组Form::select
.所以我传递了如下数组:
$datas = Items::lists('name', 'id');
$items = array();
foreach ($datas as $data)
{
$items[$data->id] = $data->name;
}
return \View::make('your view', compact('items',$items));
Run Code Online (Sandbox Code Playgroud)
在你看来:
<div class="form-group">
{!! Form::label('item', 'Item:') !!}
{!! Form::select('item_id', $items, null, ['class' => 'form-control']) !!}
</div>
Run Code Online (Sandbox Code Playgroud)
在您的控制器中,添加,
public function create()
{
$items = array(
'itemlist' => DB::table('itemtable')->get()
);
return view('prices.create', $items);
}
Run Code Online (Sandbox Code Playgroud)
在您看来,使用
<select name="categories" id="categories" class="form-control">
@foreach($itemlist as $item)
<option value="{{ $item->id }}">{{ $item->name }}</option>
@endforeach
</select>
Run Code Online (Sandbox Code Playgroud)
在选择框中,它会是这样的,
<select>
<option value="1">item1</option>
<option value="2">item2</option>
<option value="3">item3</option>
...
</select>
Run Code Online (Sandbox Code Playgroud)
我在toArray()
之后添加了pluck
$items = Item::pluck('name', 'id')->toArray();
{{ Form::select('item_id', [null=>'Please Select'] + $items) }}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
174655 次 |
最近记录: |