0
我以前asked a question一下如何有效地執行插入\更新與tablegateway和Zend\Stdlib\Hydrator\ClassMethods
獲悉本規範from the docs:的Zend STDLIB 保溼 ClassMethods提取物()返回一個空數組
public function saveAlbum(Album $album)
{
$data = array(
'artist' => $album->artist,
'title' => $album->title,
);
$id = (int)$album->id;
if ($id == 0) {
$this->tableGateway->insert($data);
} else {
if ($this->getAlbum($id)) {
$this->tableGateway->update($data, array('id' => $id));
} else {
throw new \Exception('Form id does not exist');
}
}
}
可以使用此代碼來代替:
saveAlbum(Album $album)
{
$hydrator = new ClassMethods(false);
$data = $hydrator->extract($album);
...
但我用$hydrator->extract($album);
當它返回一個空數組,這可能是這個原因發現了什麼?我在$album
對象上做了一個var_dump()
被傳遞給函數,它似乎有效。還有什麼我必須做的才能使這個工作?
不錯,只是我想要的。我將不得不閱讀戰略。這裏沒有任何警告嗎?在我的模型中使用公共屬性和exchangeArray(),就像他們在快速啓動文檔中所做的那樣,似乎是一種好方法。 – red888