Laravel - Получить счетчик отношений - PullRequest
0 голосов
/ 10 марта 2020

Я новичок в laravel. Я использовал laravel 5.4

У меня есть эта проблема, и я не знаю, с чего начать.

Я хочу подсчитать все активы в хранилище, где вся его категория - Electroni c.

Вот мой стол:

Активы

 -- 
 id
 asset_name
 asset_type_id (fk)

AssetType

 --
 id
 asset_type
 category_id (fk)

Категория

 --
 id
 category

Вот моя определенная модель:

Модель активов

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

Модель AssetType

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

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

Категория Модель

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

Контроллер:

AssetController

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

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

Просмотр:

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

Пример результата:

Asset: DELL
Asset Type: Laptop
Category: Electronic

Теперь я могу просматривать все активы.

Я пытаюсь подсчитать все активы, которые относятся к категории Electroni c в контроллере, и передать их для просмотра. Пожалуйста, просветите меня, я потерян.

1 Ответ

0 голосов
/ 10 марта 2020

Вы можете использовать Имеет много сквозных отношений на вашем Category, например, так.

Категория Модель

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

С этим Вы можете легко добраться до Asset с Category. Теперь посчитайте свой assets в контроллере:

Category::where('category', 'Electronic')->withCount('assets')->get();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...