私のデータベースには、UserテーブルとJob Titleテーブルがあります。Symfony 3 - ManyToOneとOneToManyを使用してデータを取得する
私はUserエンティティとJobTitleエンティティを設定しました。私は私のJobTitleエンティティで
/**
* @ORM\ManyToOne(targetEntity="AppBundle\Entity\JobTitle", inversedBy="users")
* @ORM\JoinColumn(name="job_title_id", referencedColumnName="id")
*/
public $jobTitle;
::私は私のUserエンティティで
ここ
/**
* @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,
));
}
私は{{user.jobTitle}}を使用しようとしていたが、私は理にかなっている文字列のエラーへの変換を取得しますが、私は考えていませんどのように実際の職名を取得して小枝ページに表示するか。
詳細が必要な場合はお知らせください。
usersテーブルのjob_title_idを使用してジョブタイトル名を取得するにはどうすればよいですか?
大きな頭痛から私を救っただけです。 '{{user.jobTitle.jobTitle}}'私はここでより良い名前を付けるべきだったが、うまくいった! – iamthestreets
うまくいけばうれしい! –