【发布时间】:2017-01-26 13:12:36
【问题描述】:
我有一个问题要问
所以我试图创建一个下拉列表,它将显示另一个表中的数据。在我的控制器中,我在创建函数中声明了这些表
public function create()
{
$tenants = Tenant::pluck('name','id');
$categories = Category::pluck('name','id');
return view('items.create', ['categories' => $categories, 'tenants' => $tenants]);
}
在我看来:
<div class='form-group'>
<label for="category_id" class="col-md-4 control-label">Item Category</label>
<div class="col-md-6">
<select class="form-control" name="category" id="categories">
@foreach($categories as $category)
{
<option value={{ $category->id }}>{{ $category->name }}</option>
}
@endforeach
</select>
</div>
</div>
<div class='form-group'>
<label for="tenant_id" class="col-md-4 control-label">Tenant</label>
<div class="col-md-6">
<select class="form-control" name="tenant" id="tenants">
@foreach($tenants as $tenant)
{
<option value={{ $tenant->id }}>{{ $tenant->name }}</option>
}
@endforeach
</select>
</div>
</div>
它会产生一个错误:尝试获取非对象的属性
但如果我像这里一样将 pluck 更改为 all:
public function create()
{
$tenants = Tenant::all();
$categories = Category::all();
return view('items.create', ['categories' => $categories, 'tenants' => $tenants]);
}
它的工作。问题是我只想获取“name”和“id”的值 并且使用 all,它还会返回我不需要的属性。我怎样才能做到这一点?如果我阅读了文档,它说 pluck 将检索给定键的所有值,但为什么我的 pluck 不起作用?我是 php 和 laravel 的新手,所以任何给定的指南都会很棒。
【问题讨论】:
标签: php laravel drop-down-menu controller laravel-5.3