0

我正在通过“入门:骨架应用程序”教程学习 ZF2。

我用外键“artist_id”更新表“专辑”,它连接到新表“艺术家”的“id”。

CREATE TABLE `album` (
    `id` INT(11) NOT NULL AUTO_INCREMENT,
    `artist_id` INT(11) NOT NULL,
    `title` VARCHAR(100) NOT NULL,
    PRIMARY KEY (`id`),
    INDEX `FK_album_artists` (`artist_id`),
    CONSTRAINT `FK_album_artists` FOREIGN KEY (`artist_id`) REFERENCES `artists` (`id`)
)
COLLATE='utf8_general_ci'
ENGINE=InnoDB;

CREATE TABLE `artists` (
    `id` INT(11) NOT NULL AUTO_INCREMENT,
    `name` VARCHAR(50) NULL DEFAULT NULL,
    PRIMARY KEY (`id`)
)
COLLATE='utf8_general_ci'
ENGINE=InnoDB;

我想知道如何在没有 sql join 的情况下从专辑对象中检索艺术家的姓名。

在控制器中

// module/Album/src/Album/Controller/AlbumController.php:
// ...
    public function indexAction()
    {
        return new ViewModel(array(
            'albums' => $this->getAlbumTable()->fetchAll(),
        ));
    }
// ...

在视图中

// module/Album/view/album/album/index.phtml:
foreach ($this->albums as $album) {
     echo "Artist's name : " . $album->getArtist()->name . "<br />";
}

我如何以及在哪里使 getArtist() 方法做我想做的事?

4

0 回答 0