gpt4 book ai didi

zend-framework2 - Zend Framework 2 的多个表

转载 作者:行者123 更新时间:2023-12-04 06:58:05 25 4
gpt4 key购买 nike

我是 Zend Framework 2 的新手。我成功完成了 ZF2 的专辑教程。现在我想只显示数据库中多个表中的特定数据。我有一个带有表格的简单数据库设置,例如人员、书籍、状态等。数据库应该做什么并不重要。我想知道的是,是否有一个教程可以向我展示显示表连接数据的分步指南。我已经看到了显示如何进行连接的代码片段,但我还没有找到任何关于设置类以及如何配置 Module.php 的教程。换句话说,Album 中的模块在 getServiceConfig() 中有一个硬编码的表名。但是我该如何设置它才能知道我正在从多个表中请求数据。另外,如果我想建立关系,我是否仍然像专辑教程中那样为数据库表创建类,还是会有所不同。你能帮忙,或者告诉我正确的路径吗?如果您知道任何解释处理多个表的教程,那就太好了。

最佳答案

alums 教程使用 Zend\Db\TableGateway它不支持加入多个表。

您需要使用 Zend\Db直接或通过映射器类,例如 AbstractDbMapper在 ZfcBase 模块中。

基本用法如下所示:

<?php

// Given that $dbAdapter is an instance of Zend\Db\Adapter\Adapter

use Zend\Db\Sql\Select();
use Zend\Db\ResultSet\ResultSet();

$select = new Select();
$select->from('album')
->columns(array('album.*', 'a_name' => 'artist.name'))
->join('artist', 'album.artist_id' = 'artist.id');

$statement = $dbAdapter->createStatement();
$select->prepareStatement($dbAdapter, $statement);
$driverResult = $statment->execute();

$resultset = new ResultSet();
$resultset->initialize($driverResult); // can use setDataSource() for older ZF2 versions.

foreach ($resultset as $row) {
// $row is an ArrayObject
}
join()方法用于执行 album 之间的连接。和 artist table 。我们还使用 columns()选择返回哪些列。在本例中,我创建了一个名为 a_name 的别名。对于 name艺术家表中的列。

一旦 Select对象设置好了,剩下的就是标准的 Db将返回 ResultSet 的代码包含数据的对象。

关于zend-framework2 - Zend Framework 2 的多个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14946165/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com