使用 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 }}
在我的 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 }}