【发布时间】:2017-01-24 15:36:12
【问题描述】:
我对 Symfony 的开发很少,我有一个问题:显示一个包含两个 Bundle 详细信息的列表。
我的项目有一个所有者,但可以有 1 位以上的顾问。实体已关联,但结果列出时只能查看用户 ID。怎样才能看到用户名?
我将附上我的实体的图片。
【问题讨论】:
-
请显示树枝代码,也许你没有正确循环关系......
-
和你的实体的 php 代码
我对 Symfony 的开发很少,我有一个问题:显示一个包含两个 Bundle 详细信息的列表。
我的项目有一个所有者,但可以有 1 位以上的顾问。实体已关联,但结果列出时只能查看用户 ID。怎样才能看到用户名?
我将附上我的实体的图片。
【问题讨论】:
我需要显示项目中不同顾问的姓名。这些也是用户。我已经关联了项目的所有者,但是这个顾问是我实体中的一个字段。
要参考的附件图片,以及 php 和 twig 文件的内容。看图:Database relation, and view.
UserProjectController
public function showAction(UserProject $userProject, User $user) {
$id = $userProject->getId();
$em = $this->getDoctrine()->getManager();
$project = $em->getRepository('ProjectBundle:Project')->find($id);
$userProjects = $em->getRepository('ProjectBundle:UserProject')->findby(array('idproject' => $id, 'status' => '1'));
if (empty($userProjects)) {
return $this->redirectToRoute('userproject_new');
}
$users = $em->getRepository('UserBundle:User')->findby(array('id' => 1));
return $this->render('ProjectBundle:Userproject:show.html.twig', array(
'userProjects' => $userProjects, 'project' => $project, 'User' => $user,
));
}
实体用户
/**
* @ORM\OneToMany(targetEntity="ProjectBundle\Entity\UserProject", mappedBy="user")
*/
protected $uproject;
实体用户项目
/**
* @ORM\ManyToOne(targetEntity="ProjectBundle\Entity\Project", inversedBy="userproject")
* @ORM\JoinColumn(name="project_id", referencedColumnName="id")
* @Assert\NotBlank()
*/
protected $idproject;
/**
* @ORM\ManyToOne(targetEntity="UserBundle\Entity\User", inversedBy="uproject")
* @ORM\JoinColumn(name="user_id", referencedColumnName="id")
* @Assert\NotBlank()
*/
protected $user;
实体项目
/**
* @ORM\OneToMany(targetEntity="ProjectBundle\Entity\UserProject", mappedBy="idproject")
*/
protected $userproject;
查看 show.html.twig
{% for userProject in userProjects %}
<br>
<dl>
<dt><span class="text-primary">{{'User_id'|trans}}</span></dt>
<dd>
{{ userProject.user }}
</dd>
<br>
<dt><span class="text-primary">{{'Consultor_id'|trans}}</span></dt>
<dd>
{{ userProject.consultorId }}
</dd>
<br>
<dt><span class="text-primary">{{'Status'|trans}}</span></dt>
<dd>
{% if userProject.status == 1 %}
<span class="text-success">{% trans %}Enabled{% endtrans %}</span>
{% elseif userProject.status == 0 %}
<span class="text-danger">{% trans %}Disabled{% endtrans %}</span>
{% endif %}
</dd>
<br>
</dl>
{% endfor %}
【讨论】: