Zend 数据库关系

发布于 2024-10-10 09:30:12 字数 959 浏览 10 评论 0原文

我正在 zend 框架中创建一个应用程序。现在我陷入了 Zend 表关系中。

我有 2 张桌子。我已经在其他表中设置了主键和相应的引用。 现在我想使用关系(而不是连接函数)连接两个表。在zend中可以吗?

表结构如下所示

Schemetable

schema_id 主键

Scheme_name

Scheme_Desc

Ratestable

rate_idScheme_id

*外键引用scheme_id *

费率:

时间段:

方案和费率之间存在一对多关系

我已经在模型类

Scheme.php

class Scheme extends Zend_Db_Table_Abstract {


 protected $_name = 'schemetable';

 protected $_dependentTables = array('rates');
}

费率 中完成了一些编码.php

class Rates extends Zend_Db_Table_Abstract {


 protected $_name = 'ratetable';

 protected $_referenceMap = array(
   'Scheme' => array(
   'columns' => array('scheme_id'),  
   'refColumns' => array('scheme_id'), 
   'refTableClass' => 'Scheme',  
  ),
 );
}

我如何获取每个方案及其相应的费率?

提前致谢。

I am creating an application in zend framework. Now i am stuck in the Zend table relationships.

I have 2 tables. I have set the primary key and the corresponding references in other tables.
Now i want to join the two tables using the relationships (not with the join functions). Is it possible in zend?

the tables structures are like the one below

Schemetable

scheme_id primary key

Scheme_name

Scheme_Desc

Ratestable

rate_id

Scheme_id *foreign key ref scheme_id*

rates:

Time periods:

There is an one to many relation b/w the scheme and rates

I have done some coding in the model classes

Scheme.php

class Scheme extends Zend_Db_Table_Abstract {


 protected $_name = 'schemetable';

 protected $_dependentTables = array('rates');
}

Rates.php

class Rates extends Zend_Db_Table_Abstract {


 protected $_name = 'ratetable';

 protected $_referenceMap = array(
   'Scheme' => array(
   'columns' => array('scheme_id'),  
   'refColumns' => array('scheme_id'), 
   'refTableClass' => 'Scheme',  
  ),
 );
}

How can i fetch every scheme and their corresponding rates?

Thanks in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

冬天的雪花 2024-10-17 09:30:12

请,
请参阅文档:

http://framework.zend.com/manual /en/zend.db.table.relationships.html

获取依赖行集

如果结果是 Row 对象
在父表上进行查询时,您可以
从相关表中获取行
引用当前行。使用
方法:

$row->findDependentRowset($table);

示例 #4 获取相关行集
使用魔法方法

此示例显示查找依赖项
行集相当于
前面的例子。在这种情况下,
应用程序使用魔术方法
调用而不是指定
表和规则作为字符串。

  $accountsTable = new Accounts();
  $accountsRowset = $accountsTable->find(1234);
  $user1234 = $accountsRowset->current();

  // Use the default reference rule
  $bugsReportedBy = $user1234->findBugs();

  // Specify the reference rule
  $bugsAssignedTo = $user1234->findBugsByEngineer();

获取父行

如果结果是 Row 对象
对依赖表进行查询时,您
可以获取父级中的行
从属行引用的行。使用
方法:

$row->findParentRow($table);

此示例显示查找父行
相当于前面的那些
例子。在这种情况下,
应用程序使用魔术方法
调用而不是指定
表和规则作为字符串。

  $bugsTable = new Bugs();
  $bugsRowset = $bugsTable->fetchAll(array('bug_status = ?', 'NEW'));
  $bug1 = $bugsRowset->current();

  // Use the default reference rule
  $reporter = $bug1->findParentAccounts();

  // Specify the reference rule
  $engineer = $bug1->findParentAccountsByEngineer();

Please,
see the DOCS:

http://framework.zend.com/manual/en/zend.db.table.relationships.html

Fetching a Dependent Rowset

If you have a Row object as the result
of a query on a parent table, you can
fetch rows from dependent tables that
reference the current row. Use the
method:

$row->findDependentRowset($table);

Example #4 Fetching Dependent Rowsets
using the Magic Method

This example shows finding dependent
Rowsets equivalent to those in the
previous examples. In this case, the
application uses the magic method
invocation instead of specifying the
table and rule as strings.

  $accountsTable = new Accounts();
  $accountsRowset = $accountsTable->find(1234);
  $user1234 = $accountsRowset->current();

  // Use the default reference rule
  $bugsReportedBy = $user1234->findBugs();

  // Specify the reference rule
  $bugsAssignedTo = $user1234->findBugsByEngineer();

Fetching a parent row

If you have a Row object as the result
of a query on a dependent table, you
can fetch the row in the parent to
which the dependent row refers. Use
the method:

$row->findParentRow($table);

This example shows finding parent Rows
equivalent to those in the previous
examples. In this case, the
application uses the magic method
invocation instead of specifying the
table and rule as strings.

  $bugsTable = new Bugs();
  $bugsRowset = $bugsTable->fetchAll(array('bug_status = ?', 'NEW'));
  $bug1 = $bugsRowset->current();

  // Use the default reference rule
  $reporter = $bug1->findParentAccounts();

  // Specify the reference rule
  $engineer = $bug1->findParentAccountsByEngineer();
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文