Error Identifier: doctrine.mapping
Every error reported by PHPStan has an error identifier. Here’s a list of all error identifiers. In PHPStan Pro you can see the error identifier next to each error and filter errors by their identifiers.
Code example #
<?php declare(strict_types = 1);
use Doctrine\ORM\Mapping as ORM;
#[ORM\Entity]
class FooWithoutPK
{
#[ORM\Column]
private string $name;
}
Why is it reported? #
This error is reported by phpstan/phpstan-doctrine.
Doctrine ORM detected a mapping configuration error in the entity class. The specific error message comes directly from Doctrine’s metadata validation. Common causes include:
- Missing identifier/primary key definition (every entity must have an
@Idor#[ORM\Id]column) - Invalid column type mappings
- Incorrect association mappings (e.g. missing
inversedByormappedBy) - Annotation or attribute syntax errors in the mapping configuration
These errors would cause Doctrine to throw an exception at runtime when it tries to load the entity metadata.
How to fix it #
The fix depends on the specific Doctrine mapping error reported. For example, if a primary key is missing, add one:
<?php declare(strict_types = 1);
use Doctrine\ORM\Mapping as ORM;
#[ORM\Entity]
class FooWithoutPK
{
+ #[ORM\Id]
+ #[ORM\GeneratedValue]
+ #[ORM\Column]
+ private ?int $id = null;
+
#[ORM\Column]
private string $name;
}
Consult the Doctrine ORM mapping documentation for details on the correct mapping configuration.
Non-ignorable error #
This error cannot be ignored using @phpstan-ignore or the ignoreErrors configuration. Non-ignorable errors indicate code that would cause a crash or a fatal error at runtime, or a fundamental problem in the analysed code that must be addressed.
Rules that report this error #
- PHPStan\Rules\Doctrine\ORM\EntityMappingExceptionRule [1] phpstan/phpstan-doctrine