我试图创建一个与SQL句子类似的连接句子:
window.btoa(svg)
我正在使用symfony中的学说形式,我目前的形式是下一个:
SELECT p.* FROM personal p INNER JOIN tematica_soporte ts ON ts.personalEmail = p.email ORDER BY ts.orden
问题在于我需要命令对象' p'通过tematica_soporte.order。我在学说上开始,我很高兴能帮到你。
我相信它应该是这样的:
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('consultanteemail', new ConsultanteType(), array ('label' => false))
->add('personalemail', 'entity', array(
'label' => 'Personal de Soporte',
'class' => 'GuiasDocentes\AppBundle\Entity\Personal',
'property' => 'Enunciado',
'by_reference' => 'false',
'query_builder' => function(PersonalRepository $pr) {
$query= $pr->createQueryBuilder('p')
;
return $query;
},
'empty_value' => 'Elija una temática para su consulta:',
))
;
}
PersonalRepository.php
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('consultanteemail', new ConsultanteType(), array ('label' => false))
->add('personalemail', 'entity', array(
'label' => 'Personal de Soporte',
'class' => 'GuiasDocentes\AppBundle\Entity\Personal',
'property' => 'Enunciado',
'by_reference' => 'false',
'query_builder' => function(PersonalRepository $pr) {
return $pr->getPersonalOrdered();
},
'empty_value' => 'Elija una temática para su consulta:',
))
;
}
然而,它引发了一个奇怪的错误:
public function getPersonalOrdered(){
$query = $this->createQueryBuilder('p')
->from('GuiasDocentesAppBundle:Personal', 'p')
->innerJoin('GuiasDocentesAppBundle:TematicaSoporte', 'ts')
->where('ts.personalemail = p.email')
->orderBy("ts.order");
return $query;
}
这些是牵连的实体:
Personal.php
[Syntax Error] line 0, col 108: Error: Expected Doctrine\ORM\Query\Lexer::T_WITH, got ','
TematicaSoporte.php
class Personal{
/**
* @var string
*
* @ORM\Column(name="email", type="string", length=50, nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $email;
/**
* @var string
*
* @ORM\Column(name="nombre", type="string", length=30, nullable=true)
*/
private $nombre;
/**
* @var string
*
* @ORM\Column(name="apellidos", type="string", length=50, nullable=true)
*/
private $apellidos;
/**
* @var string
*
* @ORM\Column(name="departamento", type="string", length=20, nullable=true)
*/
private $departamento;
/* Customized code */
/**
* @ORM\OneToMany(targetEntity="GuiasDocentes\AppBundle\Entity\TematicaSoporte", mappedBy="personalEmail")
* @Assert\Valid()
*/
private $tematicasSoporte;
public function __constructor(){
$this->tematicasSoporte = new ArrayCollection();
$this->hilos = new ArrayCollection();
}
public function addTematicasSoporte(\GuiasDocentes\AppBundle\Entity\TematicaSoporte $tematicaSoporte){
$this->tematicasSoporte[] = $tematicaSoporte;
return $this;
}
public function setTematicasSoporte(\GuiasDocentes\AppBundle\Entity\TematicaSoporte $tematicaSoporte){
$this->tematicasSoporte[] = $tematicaSoporte;
return $this;
}
public function getTematicasSoporte(){
return $this->tematicasSoporte;
}
....
...