簡體   English   中英

Symfony和Doctrine-顯示數據庫中的數據

[英]Symfony and Doctrine - displaying data from database

我正在嘗試顯示數據庫中的數據。

這是我的路線:

pages:
    pattern: /pages/{id}
    defaults:
       _controller: DprocMainBundle:Index:show

這是該路線的方法:

public function showAction($id)
    {
        $page = $this->getDoctrine()
           ->getRepository('DprocMainBundle:Pages')
           ->find($id);

        if (!$page) {
           throw $this->createNotFoundException('No product found for id '.$id);
        }
        return $this->render('DprocMainBundle:Dproc:single.html.twig',array('pages' => $page));
    }

print_r($ page)顯示:

Dproc\MainBundle\Entity\Pages Object
(
    [Id:protected] => 1
    [page_title:protected] => A Foo Bar
    [page_content:protected] => Test content for page
    [page_category:protected] => 3dsmax
)

在single.html.twig中,我試圖顯示該信息:

{% for page in pages %}
    {{ page.page_title }}
{% endfor %}

它什么也沒顯示,我在做什么錯?

find()方法將僅返回單個結果,而不是數組。 如果確實findBy(array('id'=>$id))那么您將獲得一個返回一個結果的數組。 另外,您也不能只遍歷模板,因為只有一個結果時就不需要。 只需將變量名更改為page並使用{{ page.page_title }}

您使用了兩個不同的實體。一個在getRepository('DprocMainBundle:Pages') ,另一個在render('DprocMainBundle: Dproc :single.html.twig',array('pages'=> $ page))中。 您應該在此處放置相同的實體,即DprocMainBundle:Pages 希望您能成功。

嘗試不使用for循環。 因為您具有數據庫中的過帳數據,所以可以嘗試以下操作:

{{ pages.page_title }}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM