0
我正在使用ZfcBase更新表,當我通過實體並提取原始數據時它獲取實體Id(這是主鍵),但我不想包含id爲更新,什麼是排除實體id(主鍵),以便它不會得到sql語句的適當方式?取消設置主鍵更新ZfcBase
感謝
我正在使用ZfcBase更新表,當我通過實體並提取原始數據時它獲取實體Id(這是主鍵),但我不想包含id爲更新,什麼是排除實體id(主鍵),以便它不會得到sql語句的適當方式?取消設置主鍵更新ZfcBase
感謝
這是我做的,我傳遞一個簡單的陣列,而不是對象。
$entity = array('authorized' => $authorize);
$where = array('id' => $id);
$mapper->update($entity , $where);
這是在ZfcBase AbstractDbMapper映射器
public function update($entity, $where = null, $tableName = null, Hydrator $hydrator = null)
{
$hydrator = $hydrator ?: $this->getHydrator();
if (!$where) {
$where = array('order_id' => $entity->getId());
}
return parent::update($entity, $where, $this->getTableName(), $hydrator);
}
存在是獲取呼籲更新
$rowData = $this->entityToArray($entity, $hydrator);
protected function entityToArray($entity, HydratorInterface $hydrator = null)
{
if (is_array($entity)) {
return $entity; // cut down on duplicate code
} elseif (is_object($entity)) {
if (!$hydrator) {
$hydrator = $this->getHydrator();
}
return $hydrator->extract($entity);
}
throw new Exception\InvalidArgumentException('Entity passed to db mapper should be an array or object.');
}
正如你可以看到這個方法的方法可以接受和對象或數組。我剛剛發送了一個普通的數組。