如何使用addSql在doctrine迁移上将字段设置为null?

时间:2015-03-30 15:54:24

标签: symfony pdo doctrine doctrine-migrations

我正在使用Doctrine\DBAL\Migrations\AbstractMigration::addSql($sql, array $params = array(), array $types = array())更新我的一个学说迁移中的实体,我必须将列设置为null。

我已经调试了它,我尝试将类型设置为\PDO::PARAM_NULL,但我遇到了同样的问题。

SQL:

    $sql="INSERT INTO sme_task_template (status_change_final_status) VALUES (:finalStatus)";
    $params=array(
        'finalStatus' => null
    );
    $types=array(
        'finalStatus' => \PDO::PARAM_NULL
    );
    $this->addSql($sql, $params, $types);

例外:

  [Doctrine\DBAL\DBALException]                                                
  An exception occurred while executing 'INSERT INTO sme_task_template (statu  
  s_change_final_status) VALUES (:finalStatus)' with params [null]:            
  Value for :finalStatus not found in params array. Params array key should b  
  e "finalStatus"

有谁知道如何解决这个问题?

由于

1 个答案:

答案 0 :(得分:1)

我无法使用命名参数,但它似乎与问号参数一起使用。

    $sql="INSERT INTO sme_task_template_trigger (status_change_final_status) VALUES (?)";
    $params=array(
        null
    );
    $types=array(
        \PDO::PARAM_NULL
    );
    $this->addSql($sql, $params, $types);