使用 Doctrine 实体模型渲染 Mustache PHP 模板

Render Mustache PHP template with Doctrine entity model

在我的 Symfony 控制器中,我想渲染一个带有 Doctrine 实体的 Mustache PHP 模板:

// The Doctrine entity, a dump($user) shows the correct entity
$user = $this->get('x_service')->getUserById($id); 

$templateFile = file_get_contents('.../path/to/file'); // tested, it works
$mustache = new \Mustache_Engine();
$renderedTemplate = $mustache->render($templateFile, array('user' => $user));

模板文件如下所示:

<p>
    User name: {{ user.name }}
</p>

但是变量没有放入模板中。它只显示 "User name:" 字符串。我也试过没有关联数组:

$renderedTemplate = $mustache->render($templateFile, $user);

// the template file:

<p>
    User name: {{ name }}
</p>

这也没有用。

但是,当我将另一个变量放入关联数组时,确实显示:

$renderedTemplate = $mustache->render($templateFile, array('user' => $user, 'meh' => 'hem'));

// the template file:

<p>
    User name: {{ name }} <- still no output
    Meh: {{ meh }} <- this does give output
</p>

更多信息:我只想在我的控制器中渲染这个小胡子模板。对于控制器响应,我使用的是 Twig。这是因为我只是重复使用前端 Mustache.js 模板。

编辑

正如我所读the manual,在模型中给出一个对象应该可行:

如果您的用户属性不是 public,它将无法工作。

尝试{{ user.getName }}