Sonata\DoctrineORMAdminBundle\Model\ModelManager find() method fails to manage composite primary keys.
I have an entity like this one:
Class Language
{
/**
* @ORM\Id
* @ORM\Column(type="string", length="25", nullable=false, unique=true, name="idioma")
*/
private $idioma;
/**
* @ORM\Id
* @ORM\Column(type="string", length="6", nullable=false, unique=false, name="lang_code")
*/
private $langCode;
/** @var string */
private $locale;
}
And when i tried to insert, through SonaAdmin, a new Entity into de DataBase which is linked to Language i get the following error:
Warning: array_combine(): Both parameters should have an equal number of elements in myProject/vendor/bundles/Sonata/DoctrineORMAdminBundle/Model/ModelManager.php line 176
Here is a bit of info:
echo $class;
myVendor\myBundleBundle\Entity\Language
print_r(explode(self::ID_SEPARATOR, $id));
Array
(
[0] => 1
)
print_r($this->getIdentifierFieldNames($class));
Array
(
[0] => idioma
[1] => langCode
)
The entity which fails to insert into the database and is linked to Language entity, looks like:
Class PlanaWeb_i18n
{
/**
* @Assert\Choice( choices = { "blank", "self"},message = "fooo.")
* @Orm\Column( type="string", length="13", name="type", nullable=false, name="target", columnDefinition="ENUM( 'blank', 'self' )" )
* @Assert\NotBlank()
*/
private $target;
/**
* @ORM\Id
* @ORM\ManyToOne( targetEntity="PlanaWeb", inversedBy="idiomas" )
* @ORM\JoinColumn( name="plana_web_id", nullable=false, referencedColumnName="id", onDelete="CASCADE" )
*/
private $planaWeb;
/**
* @ORM\Id
* @ORM\ManyToOne( targetEntity="Language" )
* @ORM\JoinColumn( name="lang_code", nullable=false, referencedColumnName="lang_code", onDelete="CASCADE" )
*/
private $idioma;
}