树枝文件Symfony 2中的对象或数组

时间:2013-12-10 14:40:22

标签: symfony twig

我编辑了帖子

我设置$ appartement:

$appartement = new Apartement ();
$user=1;
$em = $this->getDoctrine()->getManager();
$appartement = $em->getRepository('LeymaxDashboardBundle:Apartement')->find(1);

嗯,我认为我有一个语法错误,我在控制器中发送s params到twig文件:

return $this->render('LeymaxDashboardBundle:Default:client.html.twig', array('apart' => $appartement,
                                                                            'user' => $connected_user->getId(),
                                                                            ));

在twig文件中,我执行以下操作:

{{ path('leymax_changemodules_showModal',{'iduser': user,'profil':'client','apart':apart}) }}

生成的路线如下:

leymax_changemodules_showModal:
pattern:  /changemodulesModal/{iduser}/{profil}/{apart}
defaults: { _controller: LeymaxDashboardBundle:Default:changeModulesModal }

错误消息:

An exception has been thrown during the rendering of a template ("Warning: preg_match() expects parameter 2 to be string, object given 

我在做什么错?

1 个答案:

答案 0 :(得分:1)

您可以使用.语法访问树枝中对象的(公共)属性或方法。

只要此方法的返回值或属性的类型为字符串/整数 - 以下内容将起作用:

{{ 
    path(
       'route_name',
       {
           'parameter':  object.property, 
           'parameter2': object.someMethod 
       }
   ) 
}}

您可以进一步向对象的类添加_toString()方法,该方法将返回一个即... ...

class Object {

    public function __toString()
    {
        return $this->id;
    }

...然后直接传递对象:

{{ 
    path(
       'route_name',
       {
           'id':  object
       }
   ) 
}}