cari

Rumah  >  Soal Jawab  >  teks badan

Cara mengisytiharkan koleksi yang ditaip dalam entiti Symfony dalam PHP 8.1

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粉022723606P粉022723606280 hari yang lalu416

membalas semua(1)saya akan balas

  • P粉014218124

    P粉0142181242024-02-18 10:42:11

    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.

    balas
    0
  • Batalbalas