我的数据库中有一个User表和一个Job Title表。
我已经设置了一个User实体和一个JobTitle实体。
在我的用户实体中,我有:
/**
* @ORM\ManyToOne(targetEntity="AppBundle\Entity\JobTitle", inversedBy="users")
* @ORM\JoinColumn(name="job_title_id", referencedColumnName="id")
*/
public $jobTitle;
在我的JobTitle实体中,我有:
/**
* @ORM\OneToMany(targetEntity="AppBundle\Entity\User", mappedBy="jobTitle")
*/
private $users;
以下是用户表中的示例设置:
job_title_id | Username
1 | jdoe
以下是职位表中的示例设置:
id | job_title
1 | Owner
当我创建用户时,所有内容都按预期输入数据库。
我的问题是在我的用户列表页面中显示实际的职位。
这是我的控制器:
/**
* @Route("/users", name="users")
*/
public function listAction()
{
$loggedInUser = $this->getUser();
$users = $this->get('fos_user.user_manager')->findUsers();
if (!is_object($user) || !$user instanceof UserInterface) {
throw new AccessDeniedException('This user does not have access to this section.');
}
return $this->render('users/users.html.twig', array(
'user' => $loggedInUser,
'users' => $users,
));
}
在我的twig模板中,我试图使用{{user.jobTitle}},但我得到转换为字符串错误,这是有道理的,但我不知道如何获得实际的职位名称显示在树枝上页。
如果您需要更多信息,请告诉我。
如何使用users表中的job_title_id检索作业标题名称?
答案 0 :(得分:1)
您没有展示所有实体,因此我必须根据上面的内容“猜测”。
看起来像这样:{{ user.jobTitle }}
返回一个JobTitle对象。您可以通过转储来确认。
因为它是一个对象,我怀疑你需要做这样的事情:
{{ user.jobTitle.job_title }}
或者可能使用JobTitle的对象方法(不知道它们是什么):
{{ user.jobTitle.getJobTitle }}
或类似的东西。尝试一下。