【问题标题】:Symfony Doctrine - request works but "Deprecated Calls"Symfony Doctrine - 请求有效,但“不推荐使用的调用”
【发布时间】:2013-11-12 11:48:30
【问题描述】:

我对 Symfony 和 Doctrine 有点陌生。我正在尝试构建一个从“类别”返回所有“问题”的函数。我编写了这个有效的代码,但 SF 工具栏告诉我这不是正确的方式“Deprecated Calls”。

这是我的代码:

public function showAction(Category $category)
{   
    $c_id = $category->getId();

    $em = $this->getDoctrine()->getEntityManager();
        $connection = $em->getConnection();
        $statement = $connection->prepare("SELECT id, title FROM question WHERE category_id = $c_id");
        $statement->execute();
        $questions = $statement->fetchAll();

    return $this->render('IelCategoryBundle:Category:show.html.twig', array(
        'category' => $category,
        'questions' => $questions
    ));   
}

我确信有更好的方法来写这个,但我对这个学说代码感到不舒服。任何建议将不胜感激! :-)

【问题讨论】:

    标签: symfony doctrine-orm doctrine


    【解决方案1】:

    起初在 sf 2.3 中 getEntityManager() 已被弃用。您应该改用 getManager()。

    其次,您可能不想使用 RAW SQL,请参阅 Doctrine 2 DQL documentation

    【讨论】:

    • 对 getManager() 来说是正确的!最后,我发现解决方案非常简单......我只需要使用我的 Category 实体中的 getter:$questions = $category->getQuestions();
    猜你喜欢
    • 1970-01-01
    • 2019-05-09
    • 2020-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多