我有两个结构如下所述:
CREATE TABLE `up_offer` (
`up_offer_id` int(11) NOT NULL AUTO_INCREMENT,
`from_subscription_id` int(11) NOT NULL,
`to_subscription_id` int(11) NOT NULL,
PRIMARY KEY (`up_offer_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE `subscription` (
`subscription_id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(1000) NOT NULL,
`code` varchar(45) NOT NULL,
`price` decimal(6,2) NOT NULL,
`billing_cycle` int(11) NOT NULL,
`desc` varchar(2000) DEFAULT NULL,
`start_date` date NOT NULL,
`end_date` date NOT NULL,
`emaillist_id` int(11) NOT NULL,
`old_created_date` datetime NOT NULL,
`old_last_updated` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`created_on` datetime NOT NULL,
`last_updated_on` datetime NOT NULL,
`is_active` bit(1) NOT NULL DEFAULT b'1',
PRIMARY KEY (`subscription_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
两个表使用的dbTable类如下:
class Admin_Model_DbTable_Subscription extends Zend_Db_Table_Abstract
{
protected $_name = 'subscription';
protected $_primary = 'subscription_id';
protected $_dependentTables = 'Admin_Model_DbTable_UpOffer';
protected $_referenceMap = array(
'UpOffer' => array(
'columns' => array('subscription_id'),
'refTableClass' => 'Admin_Model_DbTable_UpOffer',
'refColumns' => array('from_subscription_id','to_subscription_id'),
),
);
}
class Admin_Model_DbTable_UpOffer extends Zend_Db_Table_Abstract{
protected $_name = 'up_offer';
protected $_dependentTables = 'Admin_Model_DbTable_Offer';
protected $_referenceMap = array(
'Offer'=>array(
'columns' => 'up_offer_id',
'refTableClass' => 'Admin_Model_DbTable_Offer',
'refColumns' => 'up_offer_id'
)
);
}
我想从'Zend_Db_Table_Row对象'获取依赖数据: 我写的代码是:
$upOfferData->toArray()
给出了字段:
Array
(
[up_offer_id] => 1
[from_subscription_id] => 10
[to_subscription_id] => 9
)
$upOfferData->findDependentRowset('Admin_Model_DbTable_Subscription');
给出输出如下:
Array
(
[0] => Array
(
[subscription_id] => 10
[name] => 001
[code] => 010
[price] => 10.00
[billing_cycle] => 1
[desc] => Test
[start_date] => 2012-04-21
[end_date] => 2012-05-20
[emaillist_id] => 0
[old_created_date] => 0000-00-00 00:00:00
[old_last_updated] => 2012-04-20 15:29:57
[created_on] => 2012-04-20 09:59:56
[last_updated_on] => 2012-04-20 01:31:44
[is_active] => 1
)
)
to_subscription_id怎么样? 我如何正确映射DbTable类以及获得所需的正确方法是什么? 期望应该是这样的:
Array
(
[0] => Array
(
[subscription_id] => 10
[name] => 001
[code] => 010
[price] => 10.00
[billing_cycle] => 1
[desc] => Test
[start_date] => 2012-04-21
[end_date] => 2012-05-20
[emaillist_id] => 0
[old_created_date] => 0000-00-00 00:00:00
[old_last_updated] => 2012-04-20 15:29:57
[created_on] => 2012-04-20 09:59:56
[last_updated_on] => 2012-04-20 01:31:44
[is_active] => 1
)
[1] => Array
(
[subscription_id] => 9
[name] => 002
[code] => 011
[price] => 50.00
[billing_cycle] => 2
[desc] => Test
[start_date] => 2012-04-21
[end_date] => 2012-05-20
[emaillist_id] => 0
[old_created_date] => 0000-00-00 00:00:00
[old_last_updated] => 2012-04-20 15:29:57
[created_on] => 2012-04-20 09:59:56
[last_updated_on] => 2012-04-20 01:31:44
[is_active] => 1
)
)