如何使用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,
))
答案 0 :(得分: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
。
我希望它有用
答案 1 :(得分:0)
对于喜欢CakePhp的人:)
在控制器中 - >
获取'UserTransactionType'列表
在视图中 - >
循环后通过所有交易;在Transaction Status列中,只需加载'UserTransactionType'array并将数组的数量分配给$ userTransactionTypes。
$userTransactionTypes[$transaction['Who_pay_fee_1']];
说实话,这是直截了当的,但需要集中精力:)