1
我有一个问题要问Laravel 5.3 Pluck vs All
所以我试图创建一个dropdownlist,它将显示来自另一个表的数据。在我的控制器我宣布这些表在我创建功能
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>
而且它产生的错误:试图让非对象的属性
但如果我改变勇气到所有像我一样在这里:
public function create()
{
$tenants = Tenant::all();
$categories = Category::all();
return view('items.create', ['categories' => $categories, 'tenants' => $tenants]);
}
其工作。问题是我只想获得'name'&'id' 和全部的值,它也会返回我不需要的属性。我怎样才能实现这一目标?如果我阅读文档,它说,pluck将检索给定键的所有值,但为什么我的拔取不起作用?我是新的PHP和拉拉维尔,所以任何指导将如此真棒。
那么它的工作!感谢你的帮助,但现在我很困惑。如果我没有弄错'=>'被用来给数组中的键赋值。所以如果我正确理解你的答案,那么使用'pluck()'得到的是具有名称值的id吗?所以,而不是1作为'ID'我会得到一个'名称?但是当我这样做时,''option value = {{$ id}}> {{$ id}}'这表明'id'的值确实是一个'id'而不是'name'。那么这是如何工作的?我真的需要了解 –
@ArgaAditya是的,用'pluck()'你可以得到一个类似数组的集合,其中'1'是表中类别的ID。这就是'pluck()'的作用。 –
不要介意我以前的评论,我已经重新阅读了文档,现在我明白了,谢谢你的帮助! –