2013-06-21 25 views
0

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

'user_transaction_type_id' 效果很好,但如何让其余字段工作:(将不同的列名称关联到一个Model + cakephp

//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, 
)) 

enter image description here

回答

0

对于人,他们喜欢的CakePHP :)在控制器
- >
得到 'UserTransactionType'
在查看 列表 - >
循环槽的所有事务之后;在“事务状态”列中,只需加载“UserTransactionType”数组并将数组的数量分配给$ userTransactionTypes即可。

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

说实话,这是直线前进,但需要一点浓度:)

0

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

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

如果模型是您可以在'contain'中指定您想要得到的结果中的哪一个。

如果你想有只相关模型的某些领域,你可以'Transaction'后确定它们在'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

我希望这是有帮助的

+0

谢谢您的时间和答案。但它应该像下面的问题一样简单:) – Fury

相关问题