[英]Laravel – Get relationship count
我是 Laravel 的新手。 我使用了 Laravel 5.4
我有這個問題,我不知道從哪里開始。
我想計算 Storage 中所有類別為電子的所有資產。
這是我的表:
資產
--
id
asset_name
asset_type_id (fk)
資產類型
--
id
asset_type
category_id (fk)
類別
--
id
category
這是我定義的模型:
資產模型
public function assetType(){
return $this->belongsTo(AssetType::class);
}
public function category(){
return $this->belongsTo(Category::class);
}
資產類型模型
public function category(){
return $this->belongsTo(Category::class);
}
public function assets(){
return $this->hasMany(Asset::class);
}
類別模型
public function types(){
return $this->hasMany(AssetType::class);
}
控制器:
資產控制器
public function index()
{
$result = Asset::all();
return view('asset.index', compact('result'));
}
看法:
索引刀片
@foreach($result as $asset)
<tr>
<td>{{ $asset->asset_name }}</td>
<td>{{ $asset->assetType->asset_type}}</td>
<td>{{ $asset->assetType->category->category}}</td>
</tr>
@endforeach
示例結果:
Asset: DELL
Asset Type: Laptop
Category: Electronic
有了它,我可以查看所有資產。
我正在嘗試獲取控制器中類別為電子的所有資產的數量並將其傳遞給查看。 請賜教我迷路了。
您可以像這樣在您的Category
上使用Has Many Through關系。
類別模型
public function assets()
{
return $this->hasManyThrough(Asset::class, AssetType::class);
}
有了這個,您可以輕松地從Category
訪問Asset
。 現在計算控制器中的assets
:
Category::where('category', 'Electronic')->withCount('assets')->get();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.