0

如何使用 Transaction.who_pay_fee_1,2,3 字段获取 (UserTransactionType.name) 的名称。

'user_transaction_type_id' 运行良好,但如何让其余字段正常工作:(

//Transaction Model
        public $belongsTo = array(
                'UserTransactionType' => array(
                    'className' => 'UserTransactionType',
                    'foreignKey' => 'user_transaction_type_id',
                    'conditions' => '',
                    'fields' => '',
                    'order' => ''
                ),

//UserTransactionType Model
public $hasMany = array(
        'Transaction' => array(
            'className' => 'Transaction',
            'foreignKey' => 'user_transaction_type_id',
            'dependent' => false,
))

在此处输入图像描述

4

2 回答 2

0

这是您的控制器的示例代码:

$this->UserTransactionType->find('all',array(
                                             'fields' => array('name'),
                                             'contain' => array('Transaction')
                                            )
                                 );

如果模型是关联的,您可以指定'contain'要在结果中获得哪些模型。

如果您只想拥有相关 Model 的某些字段,您可以像在常规查询'Transaction'中一样在 in 之后确定它们:'contain'find()

'contain' => array('Transaction' => array('fields' => array('field_1',
                                                            'field_2') ))  

但是在您的情况下,您不需要指定字段,因为默认情况下您会获得所有字段。

因此,无论您是否定义字段“who_pay_fee_1,2,3”,因为如果您 'contain'默认使用,您将获得 foreing_key - user_transaction_type_id

我希望它有帮助

于 2013-06-21T10:47:48.077 回答
0

对于他们喜欢 CakePhp 的人 :)
在 Controller -> 在 View
中获取 'UserTransactionType' 的列表-> 在遍历所有事务之后;在 Transaction Status 列中,只需加载“UserTransactionType”数组并将数组的数量分配给 $userTransactionTypes。

$userTransactionTypes[$transaction['Who_pay_fee_1']];

老实说,这很简单,但需要一点注意力:)

于 2013-06-24T10:03:34.587 回答