2017-01-20 36 views
1

我是Symfony的初學者,如何在使用symfony的視圖的company表中獲取sub_agent.companyId的值?在樹枝中獲取for循環的數據Symfony3

控制器:

public function indexAction(Request $request) { 

    $em = $this->getDoctrine()->getManager(); 

    $sub_agents = $this->getDoctrine() 
     ->getRepository('AppBundle:Sub_agent') 
     ->findAll(); 

    return $this->render('Backend/Sub_agent/index.html.twig', array(
     'sub_agents' => $sub_agents 
    )); 
} 

模板:index.html.twig

{% for sub_agent in sub_agents %} 

{{ sub_agent.companyId }} // Get the data of this companyId in my company table 

{% endfor %} 

回答

1

我認爲公司與sub_agent實體有關係嗎?

如果這是一個分離式實體應首先獲得該公司,之後得到公司實體的ID

試試這個:

{% for sub_agent in sub_agents %} 
    {{ sub_agent.company.id }} 
{% endfor %} 
+0

這正是我所需要的。謝謝一堆! – phpmeter

+0

很酷,沒問題。好,你檢查這個答案是正確的答案? – DaanBuit

+1

如果'company'是sub_agent或對象的屬性,則不起作用。但如果'公司'是一種檢索公司的方法,那麼它會。但是,通常getter應該被稱爲'getCompany'或類似的。另外,一旦擁有了公司對象,你不能直接在Twig中以這種方式訪問​​'id',特別是因爲這個ID通常設置爲'protected'或'private'。 –

-1

使用你的吸氣劑。不知道它是什麼被稱爲您的實體。事情是這樣的:

{% for sub_agent in sub_agents %} 
    {{ sub_agent.getId }} 
{% endfor %} 

它應該是這麼簡單,因爲你通常是不能直接調用該屬性,所以只使用實體制定者/吸氣獲取/設置。

編輯#2 - 基於你沒有提到你有一個單獨的實體,稱爲Company

{% for sub_agent in sub_agents %} 
    {{ sub_agent.getCompany.getId }} 
{% endfor %} 

上述假定的sub_agent實體具有$company屬性和調用getter時getCompany()。然後getCompany()返回一個Company對象,然後Company方法getId()返回Company ID。你也可以使用DanBuit的建議,但Chi-Chi和我的建議都是在Twig中做到的「典型」方式。

+0

@ Chi-Chi和我的回答都是很好的建議。我不確定爲什麼對我們兩個人都是倒黴蛋?你沒有提到公司是一個不同的實體。在這種情況下,我將修改我的答案以顯示EDIT#2以顯示使用吸氣劑的正常方法。也許你沒有投票,但我認爲downvote是不值得的。 –

-1

OK,你想訪問的樹枝ID,所以你應該有一個給你ID的功能:

public function getCompanyId() 
{ 
    return $this->companyId; 
} 

該功能必須在你的實體:Sub_agent類