Tworzę aplikację laravel, czyli Item Guarantee System.

W grę wchodzą 3 moduły: Przedmiot, Gwarancja i Reklamacja.

Item -> Warranty -> Claim

Przedmiot ma wiele gwarancji,

Jedna gwarancja obejmuje jeden przedmiot,

Gwarancja ma wiele roszczeń (ponieważ można ją wielokrotnie reklamować, reklamacja jest tutaj modelem, ponieważ ma opis)

Jedna reklamacja należy do jednej Gwarancji.

Więc teraz mam zamiar dowiedzieć się, ile roszczeń ma każdy przedmiot, korzystając z niecierpliwego ładowania? Dziękuję za pomoc :)

2
dramasea 21 marzec 2020, 16:50

2 odpowiedzi

Najlepsza odpowiedź

Gwarancja na element maWiele

Gwarancja hasMany Roszczenia

A teraz chcesz otrzymać roszczenia dotyczące określonego przedmiotu. Następnie musisz utworzyć kolejną relację w modelu roszczenia jako ma wiele przez

class Item extends Model
{
    /**
     * Get all of the claim for the item.
     */
    public function claims()
    {
        return $this->hasManyThrough('App\Claim', 'App\Warranty');
    }
}

Teraz w kontrolerze możesz użyć metody withCount do liczenia.

$ietms = App\Item::withCount('claims')->get();

Przeczytaj więcej o Has Many Through

1
Dilip Hirapara 21 marzec 2020, 13:58

Chętne ładowanie zagnieżdżonych relacji:

 $ietms = App\Item::with('Warranty.Cliam')->get();
0
Community 20 czerwiec 2020, 09:12