У меня есть три лица, скажем A
, B
а также C
, A
владеет двумя отношениями ManyToOne с B
и к C
, Я хочу создать слизняк для A
состоит из поля A.a
, B.b
а также C.c
,
На данный момент, я мог бы создать слизняк с A.a
а также B.b
с этим кодом:
Класс А:
<?php
use Doctrine\ORM\Mapping as ORM;
use Gedmo\Mapping\Annotation as Gedmo;
/**
* @ORM\Entity(
* repositoryClass="AppBundle\Repository\ARepository"* )
*/
class A
{
/**
* @var integer
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue
*/
private $id;
/**
* @var string
* @ORM\Column(type="string")
*/
private $name;
/**
* @var B
* @ORM\ManyToOne(targetEntity="B")
*/
private $b;
/**
* @var C
* @ORM\ManyToOne(targetEntity="C")
*/
private $c;
/**
* @var string
* @ORM\Column(type="string", unique=true)
* @Gedmo\Slug(handlers={
* @Gedmo\SlugHandler(class="Gedmo\Sluggable\Handler\RelativeSlugHandler", options={
* @Gedmo\SlugHandlerOption(name="relationField", value="name"),
* @Gedmo\SlugHandlerOption(name="relationSlugField", value="alias"),
* @Gedmo\SlugHandlerOption(name="separator", value="-")
* })
* }, separator="-", updatable=true, fields={"name"})
*/
private $slug;
// ...
}
Класс Б:
<?php
use Doctrine\ORM\Mapping as ORM;
use Gedmo\Mapping\Annotation as Gedmo;
/**
* @ORM\Entity(
* repositoryClass="AppBundle\Repository\BRepository"* )
*/
class B
{
/**
* @var integer
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue
*/
private $id;
/**
* @var string
* @ORM\Column(type="string")
*/
private $name;
/**
* @var string
* @ORM\Column(type="string")
* @Gedmo\Slug(handlers={
* @Gedmo\SlugHandler(class="Gedmo\Sluggable\Handler\InversedRelativeSlugHandler", options={
* @Gedmo\SlugHandlerOption(name="relationClass", value="AppBundle\Entity\A"),
* @Gedmo\SlugHandlerOption(name="mappedBy", value="b"),
* @Gedmo\SlugHandlerOption(name="inverseSlugField", value="slug")
* })
* }, fields={"name"})
*/
private $alias;
//...
}
С этим кодом слизняк A.slug
это что-то вроде {{B.alias}}-{{A.name}}
, Я хочу чтобы это было {{C.alias}}-{{B.alias}}-{{A.name}}
, Я пытался добавить еще SlugHander
в handlers
опция массива Gedmo\Slug
, но он проигнорировал второй. Как я могу это сделать?
Задача ещё не решена.
Других решений пока нет …