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()'的作用。 –
不要介意我以前的評論,我已經重新閱讀了文檔,現在我明白了,謝謝你的幫助! –