我使用 zf2 的 tableGateway,但我不确定它会导致什么设计。
这是如何使用 zf2 的 tableGateway 进行插入的规范示例(来自文档):
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');
}
}
}
但是定义 $data 数组似乎是多余的,因为我已经有一个 Album 类,如下所示:
class Album
{
public $id;
public $artist;
public $title;
public function exchangeArray($data)
{
$this->id = (isset($data['id'])) ? $data['id'] : null;
$this->artist = (isset($data['artist'])) ? $data['artist'] : null;
$this->title = (isset($data['title'])) ? $data['title'] : null;
}
}
在我自己的项目中,我有一个包含大约 25 个属性的模型(一个有 25 列的表)。必须定义具有 25 个属性的类,而不是在实现 tableGateway 的类的方法内部编写一个 $data 数组,并为每个这些属性添加一个元素,这似乎是多余的。我错过了什么吗?