对拥有产品的用户的订单进行问题过滤-Cakephp 3

问题描述

朋友,我有一个订单表,其中记录了用户的订单。该表包含以下字段:

id,数量,product_id,user_id

通过这种方式,用户可以购买其产品并查阅其历史记录。问题是我想在注册产品的公司那边这样做。我只想为拥有产品的用户按product_id进行过滤。

我的OrdersTable.PHP

.
.
    $this->belongsTo('Products',[
            'foreignKey' => 'product_id','joinType' => 'INNER',]);
    $this->belongsTo('Users',[
            'foreignKey' => 'user_id',]);
    }

我的方法如下。请注意,我以手动输入ID为例。这个想法是从登录用户那里捕获这些信息。如果有人可以查看或评论,我将不胜感激。我不知道该怎么解决

    public function index()
    {
        $this->paginate = ['contain' => ['Users','Products']];
        $query = $this->Orders->find('all')->where(['Orders.product_id' => 76]);

        $this->set('orders',$this->paginate($query));
        $this->set('_serialize',['order']);
    }

解决方法

谢谢大家的关注。我是这样决定的:

        $query = $this->Orders->find();
        $query->contain('Products',function ($q) {
            return $q->where(['Products.user_id' => $this->getRequest()->getSession()->read('Auth.User.id')]);
        });