I’m a bit clueless.
I would like to import data to my DB. This is a example entity:
all fields nesassary fields were filled, but doctrine tells me:
In ExceptionConverter.php line 111: An exception occurred while executing a query: SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'pokemon_id' cannot be null In Exception.php line 26: SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'pokemon_id' cannot be null In Statement.php line 92: SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'pokemon_id' cannot be null
Here is the snipped of my entity.
/** * @ORMColumn(type="integer") */ private ?int $pokemonId; public function getPokemonId(): ?int { return $this->pokemonId; } public function setPokemonId(int $pokemonId): self { $this->pokemonId = $pokemonId; return $this; }
Where did i miss the point?
P.S.:
Maybe I should also tell that this property never can be null. And I have a relation to an
/** * @ORMManyToOne(targetEntity="AppEntityPokemonPokemon", inversedBy="pokemon_id") */ private $pokemon; public function getPokemon(): ?Pokemon { return $this->pokemon; } public function setPokemon($pokemon): self { $this->pokemon = $pokemon; return $this; }
Why does SQL not take my property?
Advertisement
Answer
Here is the solution.
When you have a one to many relation (in my example the pokemon) you mustn’t use setpokemonId()
to store the relation, you use setPokemon()
instead. Doctrine will store the value then in the pokemon_id column.