[英]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.