Saya baru di laravel. Saya menggunakan laravel 5.4

Saya memiliki masalah ini dan saya tidak tahu harus mulai dari mana.

Saya ingin menghitung semua aset di Storage di mana semua kategorinya adalah Elektronik.

Ini Tabel saya:

Aktiva

 -- 
 id
 asset_name
 asset_type_id (fk)

Tipe Aset

 --
 id
 asset_type
 category_id (fk)

Kategori

 --
 id
 category

Inilah model yang saya tetapkan:

Model Aset

public function assetType(){
     return $this->belongsTo(AssetType::class);
}
public function category(){
     return $this->belongsTo(Category::class);
}

Model Tipe Aset

public function category(){
     return $this->belongsTo(Category::class);
 }

public function assets(){
     return $this->hasMany(Asset::class);
}

Kategori Model

public function types(){
     return $this->hasMany(AssetType::class);
}

Pengontrol:

Pengontrol Aset

public function index()
    {
        $result = Asset::all();

        return view('asset.index', compact('result'));
    }

Melihat:

Index.blade

@foreach($result as $asset)
<tr>

    <td>{{ $asset->asset_name }}</td>
    <td>{{ $asset->assetType->asset_type}}</td>
    <td>{{ $asset->assetType->category->category}}</td>


</tr>
@endforeach

Hasil Sampel:

Asset: DELL
Asset Type: Laptop
Category: Electronic

Dengan itu saya bisa melihat semua aset.

Saya mencoba untuk mendapatkan jumlah semua aset yang kategorinya Elektronik di pengontrol dan meneruskannya untuk dilihat. Mohon pencerahannya saya tersesat.

0
Jherom Purisima 10 Maret 2020, 11:37

1 menjawab

Jawaban Terbaik

Anda dapat menggunakan hubungan Has Many Through di Category seperti itu.

Model Kategori

public function assets()
{
    return $this->hasManyThrough(Asset::class, AssetType::class);
}

Dengan ini Anda dapat dengan mudah mencapai Asset dari Category. Sekarang hitung assets Anda di pengontrol Anda:

Category::where('category', 'Electronic')->withCount('assets')->get();
0
Marijan 10 Maret 2020, 09:49