Laravel 5.3 Pluck vs All

时间:2017-01-26 05:07:08

标签: php laravel drop-down-menu controller laravel-5.3

我有一个问题要问

所以我试图创建一个显示来自另一个表的数据的下拉列表。在我的控制器中,我在创建函数

中声明了这些表
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的新手,所以任何给定的指南都会非常棒。

1 个答案:

答案 0 :(得分:2)

使用pluck()时,您会获得[id => 'name']格式的数据,所以这样做:

@foreach($categories as $id => $category)
    <option value={{ $id }}>{{ $category }}</option>
@endforeach

$tenants

执行相同的操作