2016-11-22 68 views
0

我的數據庫中有一個用戶表和一個作業標題表。Symfony 3 - 使用ManyToOne和OneToMany並檢索數據

我已經設置了一個用戶實體和一個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, 
    )); 
} 

在我的樹枝模板我試圖用{{user.jobTitle}},但我得到一個轉換爲字符串錯誤這是有道理的,但我沒有想法如何讓實際的職位名稱顯示在樹枝頁面中。

如果您需要更多信息,請讓我知道。

如何使用users表中的job_title_id檢索職位名稱?

回答

1

你沒有顯示你的所有實體,所以我必須根據我上面看到的「猜測」。

看起來像這樣:{{ user.jobTitle }}給你一個JobTitle對象。你可以通過轉儲進行確認。

因爲它是一個對象,我懷疑你需要做這樣的事情:

{{ user.jobTitle.job_title }} 

或者可能使用JOBTITLE的對象的方法(不知道它們是什麼):

{{ user.jobTitle.getJobTitle }} 

或類似的東西。試試看。

+0

你剛從一個巨大的頭痛救了我。我需要這樣寫''{{user.jobTitle.jobTitle}}'我應該在這裏使用更好的命名,但它的工作原理! – iamthestreets

+0

很高興你的工作! –

相關問題