我使用Doctrine 2.3.4.和Symfony 2.3.0
我有两个实体:Person和Application.
当某个人申请工作时,会创建应用程序.
从关系Person到Application的OneToMany,双向的.
在这里使用常规Doctrine文档,我设法只在使用单个实体时才能获得正确的结果集.但是,当我添加连接实体时,我获得了根实体的集合,但加入了错误的相关实体.
换句话说,问题是我得到了一个应用程序集合,但都拥有相同的Person.
原生sql查询,直接执行时返回正确的结果.
这是代码:
$sql = "SELECT a.id, a.job, p.first_name, p.last_name
FROM application a
INNER JOIN person p ON a.person_id = p.id";
$rsm = new ResultSetMapping;
$rsm->addEntityResult('\Company\Department\Domain\Model\Application', 'a');
$rsm->addFieldResult('a','id','id');
$rsm->addFieldResult('a','job','job');
$rsm->addJoinedEntityResult('\Company\Department\Domain\Model\Person' , 'p', 'a', 'person');
$rsm->addFieldResult('p','first_name','firstName');
$rsm->addFieldResult('p','last_name','lastName');
$query = $this->em->createNativeQuery($sql, $rsm);
$result = $query->getResult();
return $result;
Run Code Online (Sandbox Code Playgroud)
以下是实体类:
namespace Company\Department\Domain\Model;
use Doctrine\ORM\Mapping as ORM;
/**
* Person
*
* @ORM\Entity
* …Run Code Online (Sandbox Code Playgroud) 我有一些不需要的表单类型.表单标签应该是本地化的,这很容易.
但是,当您将某种表单类型配置'required'=>'false'为时,会在类型标签后面出现单词"(可选)".
翻译"可选"或禁用它的正确方法是什么?
顺便说一句.我现在根本没有看到任何方式.
谢谢
"require": {
"php": ">=5.3.3",
"symfony/symfony": "v2.3.0",
"doctrine/orm": ">=2.2.3,<2.4-dev",
"doctrine/doctrine-bundle": "1.2.*",
"twig/extensions": "1.0.*",
"symfony/assetic-bundle": "2.1.*",
"symfony/swiftmailer-bundle": "2.3.*",
"symfony/monolog-bundle": "2.3.*",
"sensio/distribution-bundle": "2.3.*",
"sensio/framework-extra-bundle": "2.3.*",
"sensio/generator-bundle": "2.3.*",
"jms/security-extra-bundle": "1.4.*@dev",
"jms/di-extra-bundle": "1.3.*@dev",
"twitter/bootstrap" : "dev-master",
"cg/kint-bundle": "dev-master",
"raveren/kint": "dev-master",
"mopa/bootstrap-bundle": "dev-master",
"sonata-project/intl-bundle": "dev-master",
"egeloen/ckeditor-bundle": "2.*"
},
Run Code Online (Sandbox Code Playgroud)