php - Silex 和 Doctrine mysql : how to return results from select all

标签 php mysql symfony doctrine-orm silex

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/

相关文章:

php - Codeigniter 从 View 中将多个参数传递给 Controller ​​?

Mysql 更新一系列数据,其中系列中缺少某些数字

php - 同时存在createdBy和updatedBy时正确加入users表

forms - 带有两个提交按钮的 Symfony 2 表单

mysql - Doctrine "on update CURRENT_TIMESTAMP"注释 (Symfony2)

PHP 无法显示更新的值

php - 创建网站游览

php - MySqli 命令不同步;你现在不能运行这个命令

php - 登录页面中出现错误 symfony - 警告 : gettext()

php - Laravel Form 方法 VS 传统编码