Doctrine 提供者提供数据库服务。这是一个用法示例:
$app->get('/enc/{id}', function ($id) use ($app) {
$sql = "SELECT * FROM encuestas WHERE id_enc = ?";
$post = $app['db']->fetchAssoc($sql, array((int) $id));
return "<h1>Encuestas</h1>".
"<p>{$post['fec_enc']}</p>".
"<p>{$post['opc1']}</p>".
"<p>{$post['img1']}</p>".
"<p>{$post['vot1']}</p>".
"<p>{$post['opc2']}</p>".
"<p>{$post['img2']}</p>".
"<p>{$post['vot2']}</p>".
"<p>{$post['estado']}</p>";
});
这是数组,问题:
$app->get('/enc', function() use ($app) {
$sql = "SELECT * FROM encuestas";
$post = $app['db']->fetchAll($sql);
return ...;
});
最佳答案
什么是问题?
在第二段代码中,db 返回关联数组的数组。并显示其中的每个项目你必须使用某种循环。实际上,您提供的返回示例很丑陋。为什么不使用一些模板引擎(例如 twig)?无论如何你必须做这样的事情:
$posts = $app['db']->fetchAll($sql); // posts - NOT post
foreach($posts as $post) {
echo $post['fec_enc']; // or "echo '<p>' . $post['fec_enc'] . '</p>'",
// but it's really ugly
... // rest of properties
}
或者使用 Twig :
渲染 Twig 模板:
return $app['twig']->render('<template_name>', array('posts' => $posts));
在 Twig 模板中:
{% for post in posts %}
{{ post.fec_enc }}
...
{% endfor %}
这里有更多关于 Silex 模板的信息:http://silex.sensiolabs.org/doc/providers/twig.html
关于php - Silex 和 Doctrine mysql : how to return results from select all,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27179690/