首页 > 解决方案 > Doctrine DBAL 更新所有行

问题描述

我想按 id 更新帖子表。但是,当我尝试该学说时,会更新帖子表中的所有行,而不仅仅是选定的 id。

请注意,来自 DriverManager 的 queryBuilder 不是来自 EntityManager

public function store(RequestInterface $request)
{
    $db = new Config();
    $db->queryBuilder()
        ->update("posts")
        ->set("title", "?")
        ->set("content", "?")
        ->where("id", "?")
        ->setParameter(0, $request->get("title"))
        ->setParameter(1, $request->get("content"))
        ->setParameter(2, $request->get("id"));

    return redirect()->route("posts.index");
}

配置类

class Config
{
private $info;

public function __construct()
{
    $this->info = [
        'dbname' => 'cms',
        'user' => 'root',
        'password' => '123456',
        'host' => 'localhost',
        'driver' => 'pdo_mysql',
    ];
}

public function conn()
{
    return DriverManager::getConnection($this->info, $this->config());
}

private function config()
{
    return new Configuration();
}

public function queryBuilder()
{
    return $this->conn()->createQueryBuilder();
}

上面的代码有什么问题吗?如果是,我该如何解决?

标签: phpdoctrine-ormdoctrine

解决方案


推荐阅读