Comment déclarer des collections typées dans les entités Symfony en PHP 8.1
P粉022723606
P粉022723606 2024-02-17 11:19:48
0
1
469

Je reçois l'erreur de PHPStan :

Property App\Entity\Product::$productArticles type mapping mismatch: property can contain Doctrine\Common\Collections\Collection but database  
         expects Doctrine\Common\Collections\Collection&iterable<App\Entity\ProductArticle>

Ma déclaration de variable :

#[ORM\OneToMany(mappedBy: 'product', targetEntity: ProductArticle::class)]
    /** @var  Collection<int, ProductArticle> */
    private Collection $productArticles;

Comment utiliser : l'annotation pour déclarer les variables ORM et l'annotation PHPDoc pour déclarer les types Collection en même temps ?

P粉022723606
P粉022723606

répondre à tous(1)
P粉014218124

PHPDoc doit être au-dessus des propriétés.

class Foo
{
    /** @var  Collection */
    #[ORM\OneToMany(mappedBy: 'product', targetEntity: ProductArticle::class)]
    private Collection $productArticles;
}

Il s'agit d'un bug dans la bibliothèque d'analyseurs (nikic/php-parser) utilisée par PHPStan. Donc ça doit être ça maintenant.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal