我有一個帶有標準up方法的條令遷移類,如下所示:
$this->addSql("INSERT INTO `mytable` (`name`) VALUES ('myvalue')");
$res = $this->em->createQueryBuilder()
->select('a')
->from(MyEntityClass::class, 'a')
->where("a.name = :name")
->setParameter('name', 'myvalue')
->getQuery()
->getResult();
$id = $res[0]->getId();
//some other operation using $id...
運行此代碼時出現錯誤:注意:未定義的偏移量:0
如果手動檢查db,則不會插入該值。
但是,如果我用select查詢注釋掉了該塊,則該值將正確保存到表中。
在我看來,addSql中的查詢都是在腳本末尾執行的,有沒有辦法在值保存到db上后立即檢索該值?
這是因為
addSql
沒有立即執行。嘗試執行以下操作:另外,不要在遷移中使用查詢生成器(這是一種糟糕的做法)。因為您的實體將來可以更改(甚至刪除)。