Laravel - 获取关系计数

我是 laravel 的新手。我使用了 laravel 5.4


我有这个问题,我不知道从哪里开始。


我想计算存储中所有类别都是电子的所有资产。


这是我的表:


资产


 -- 

 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

有了它,我可以查看所有资产。


我正在尝试获取控制器中类别为电子的所有资产的计数并将其传递给查看。请赐教我迷路了。


暮色呼如
浏览 69回答 1
1回答

喵喔喔

您可以在您的喜欢上使用Has Many Through关系。Category类别模型public function assets(){&nbsp; &nbsp; return $this->hasManyThrough(Asset::class, AssetType::class);}有了这个,您可以轻松地Asset从Category. 现在assets在您的控制器中计算您的:Category::where('category', 'Electronic')->withCount('assets')->get();
打开App,查看更多内容
随时随地看视频慕课网APP