使用hasOne关系选择cakephp 3中的最新记录

时间:2015-05-23 07:59:01

标签: mysql cakephp cakephp-3.0

我有2个型号:Product和SellingProduct。 SellingProduct商店销售信息为销售日期,售价。产品记录有许多销售产品记录。

我想获取产品的最新销售产品记录。我使用hasOne但不起作用。

$this->hasOne('LastSellingProduct', [
        'foreignKey' => 'product_id',
        'order' => ['LastSellingProduct.created' => 'DESC'],
        'limit' => 1,
        'propertyName' => 'last_selling_product',
        'className' => 'SellingProducts'
    ]);

请帮助我!

1 个答案:

答案 0 :(得分:0)

如何使用虚拟字段呢?

我会设置

$this->virtualFields('LastSellingProduct','SELECT product_id from `selling_products` where id = (SELECT MAX(id) from `selling_products` WHERE product_id=Product.id)');

或从您的产品中添加模拟虚拟字段

public $virtualFields = array('LastSellingProduct'=>'(SELECT product_id FROM `selling_products` WHERE id = (SELECT MAX(id) FROM `selling_products` WHERE product_id=Product.id))');