我有一个问题要问
所以我试图创建一个显示来自另一个表的数据的下拉列表。在我的控制器中,我在创建函数
中声明了这些表let dir = NSSearchPathForDirectoriesInDomains(FileManager.SearchPathDirectory.documentDirectory, FileManager.SearchPathDomainMask.userDomainMask, true)[0] as String
if let filePath = dir.stringByAddingPathComponent("filename.png"){
try? UIImagePNGRepresentation(image)?.write(to: URL(fileURLWithPath: filePath))
}
在我看来:
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>
它的工作。问题是我只想获得&#39; name&#39;的价值。 &安培; &#39; ID&#39; 并且使用所有,它还会返回我不需要的属性。我如何通过采摘实现这一目标?如果我阅读文档,它说pluck将检索给定键的所有值,但为什么我的pluck不起作用?我是php和laravel的新手,所以任何给定的指南都会非常棒。
答案 0 :(得分:2)
使用pluck()
时,您会获得[id => 'name']
格式的数据,所以这样做:
@foreach($categories as $id => $category)
<option value={{ $id }}>{{ $category }}</option>
@endforeach
对$tenants