Cara mengisytiharkan koleksi yang ditaip dalam entiti Symfony dalam PHP 8.1
P粉022723606
P粉022723606 2024-02-17 11:19:48
0
1
421

Saya mendapat ralat ini daripada 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>

Perisytiharan berubah saya:

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

Cara menggunakan: anotasi untuk mengisytiharkan pembolehubah ORM dan anotasi PHPDoc untuk mengisytiharkan jenis Koleksi pada masa yang sama?

P粉022723606
P粉022723606

membalas semua(1)
P粉014218124

PHPDoc perlu melebihi sifat.

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

Ini ialah pepijat dalam perpustakaan parser (nikic/php-parser) yang digunakan oleh PHPStan. Jadi itu mesti berlaku sekarang.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan