两个用户关联到CakePHP 3.x中的一个事务

时间:2019-06-24 20:30:21

标签: cakephp orm associations cakephp-3.6

在我的应用中,有一个交易表,其中: 卖方ID,买方ID和资产ID。

seller_id和Buyer_id应该指向用户表。为了遵守约定并保持自动关联,两者都应称为“ user_id”(这当然是不可能的)

在CakePHP 3.x中创建此类关联的正确方法是什么?

我的猜测是我应该创建特殊的关联表: 卖家(id,user_id) 买家(id,user_id)

,然后关联将通过这些表: 交易=>卖家,买家=>用户

对吗?能行吗?有更好的方法吗?

1 个答案:

答案 0 :(得分:2)

您可以使用以下别名和外键定义关系。

在您的交易模型/表格中。

$this->belongsTo('Sellers' , [ 
    'foreignKey' => 'seller_id',  
    'className' => 'Users'   
]); 

$this->belongsTo('Buyers' , [ 
    'foreignKey' => 'buyer_id',  
    'className' => 'Users'   
]);  

如果您还想在用户模型中定义关系,则可以通过这种方式进行定义。

在用户模型/表中

$this->hasMany('BuyerTransactions' , [ 
    'foreignKey' => 'buyer_id',  
    'className' => 'Transactions'   
]); 


$this->hasMany('SellerTransactions' , [ 
        'foreignKey' => 'seller_id',  
        'className' => 'Transactions'   
    ]);