Skip to content
Advertisement

An exception occurred while executing a query: SQLSTATE[23000]: Integrity constraint violation: 1048 Column ‘pokemon_id’ cannot be null

I’m a bit clueless.

I would like to import data to my DB. This is a example entity: 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.

User contributions licensed under: CC BY-SA
9 People found this is helpful
Advertisement