2015-10-16 42 views
2

我現在開始在symfony中開發,並且我在Symfony CMF的CMS中工作,我需要創建一個函數,在php和JS中插入一些行以插入到正在運行的頁面或現有模板中。Symfony2 - 渲染控制器顯示空白頁面

我創建了主控制器的行動爲這個模板,我儘量使這條線一根樹枝內部控制器:

{{ render(controller('siteCmsBundle:Article:fish')) }} 

但這返回一個空白頁,我也嘗試這種代碼:

{% render 'siteCmsBundle:Article:fish' %} 

這會返回路由錯誤(邏輯)。

而且控制器是:

<?php 

namespace site\Bundle\CmsBundle\Controller; 

use Symfony\Component\HttpFoundation\RedirectResponse; 
use Symfony\Component\HttpFoundation\Request; 
use Symfony\Bundle\FrameworkBundle\Controller\Controller; 
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template; 
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route; 
use Wf\Bundle\CmsBaseBundle\Controller\ArticleController as BaseArticleController; 
use Wf\Bundle\CmsBaseBundle\Entity\Collection\Module\PageCompositeEditorModule; 

class ArticleController extends BaseArticleController 
{ 

    ... 

    /** 
    * @Template() 
    */ 
    public function fishAction(){ 

     return new Render("Test"); 
    } 
} 

好吧,我會繼續學習這個框架,但我需要今天結束這個問題。 :(

有人可以幫我嗎?

非常感謝!

+1

如果您的操作被稱爲myAction,應該這樣做:'{{render(controller('CmsBundle:Article:my'))}}'(刪除'Action'後綴)。無論如何,空白頁通常意味着服務器端錯誤(500錯誤)。所以你應該在你的日誌中有錯誤(無論是symfony還是apache) – Brewal

+0

你好,對不起我現在編輯帖子。 myAction是一個例子。 – diegoos

+1

'返回新渲染(「測試」);'?嘗試:'返回新的響應(「測試」);' – scoolnico

回答

2

使用註釋,就回到單一陣列。

/** 
* @Template() 
*/ 
public function fishAction(){ 

    return 
     array('fish' => 'saumon'); 
} 

或 加入方法使()誰延長控制器類的模板

public function fishAction(){ 
    return $this->render(
     'siteBundle:CmsBundle:fishTemplate.html.twig', 
     array('fish' => 'saumon') 
    ); 
} 
+0

嗨。我試圖使用這個選項,但返回「找不到頁面」。 – diegoos

+0

將自定義模板'siteBundleCmsBundle:Fish:fishTemplate.html.twig', 添加到網站\ Bundle \ CmsBBundle \ Resources \ views \ Fish \ fishTemplate.html.twig – rommct

+0

rommct,它的工作原理!謝謝。但是,當我只用