Symfony2:根据请求自定义响应

时间:2015-11-10 16:08:06

标签: php symfony twig

我有一些动作,我希望返回不同的响应,具体取决于调用此动作的页面。

这是一个动作

 /**
 * @Route("/collection_create_submit", name="collection_create_submit")
 */
public function createSubmitAction(Request $request)
{
    $collection = new Collection();

    /* other code*/

    if (???){
    return $this->render('@Collection/Collection/createSubmit.html.twig', 
                          array('collection' => $collection));
    }else{
    return array('collection' => $collection);
         }
    }
}

因此,例如,如果在list.html.twig上调用了action,我想渲染createSubmit.html.twig模板。如果在show.html.twig上调用它,我只想获取Collection对象。

1 个答案:

答案 0 :(得分:1)

正如评论中已经提到的,您可以轻松地使用参数。

public function createSubmitAction(Request $request, $render = false)
{
    $collection = new Collection();

    /* other code*/

    if ($render !== false){
        return $this->render('@Collection/Collection/createSubmit.html.twig', 
                          array('collection' => $collection));
    }
    else{
        return array('collection' => $collection);
    }
}