从拥有产品的用户筛选订单时出现问题-Cakephp 3

从拥有产品的用户筛选订单时出现问题-Cakephp 3,php,cakephp,cakephp-3.0,Php,Cakephp,Cakephp 3.0,朋友们,我有一个订单表,记录用户的订单。该表包含以下字段: id、数量、产品id、用户id 这样,用户就可以购买他的产品并查阅他的历史。问题是,我想站在注册该产品的公司这一边做这件事。我只想为拥有产品的用户按产品id进行筛选 My OrdersTable.php . . $this->belongsTo('Products', [ 'foreignKey' => 'product_id', 'joinType' => 'I

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

id、数量、产品id、用户id

这样,用户就可以购买他的产品并查阅他的历史。问题是,我想站在注册该产品的公司这一边做这件事。我只想为拥有产品的用户按产品id进行筛选

My OrdersTable.php

.
.
    $this->belongsTo('Products', [
            'foreignKey' => 'product_id',
            'joinType' => 'INNER',
        ]);
    $this->belongsTo('Users', [
            'foreignKey' => 'user_id',
            'joinType' => 'INNER',
        ]);
    }
我的方法如下。请注意,我以手动输入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')]);
        });

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

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

您使用什么方法进行身份验证?旧组件还是新插件?查看文档了解如何获取登录用户,并将其添加到
where
子句中。我这样做:$This->getRequest()->getSession()->read('Auth.user.id')。但是,我需要按产品id进行筛选,以显示所选产品以及属于注册用户的产品。我输入的代码的结果返回用户id。您对您尝试执行的操作的描述可以用许多不同的方式进行解释,很难理解您的确切意思/您遇到的问题到底是什么。如果您可以提供一个示例,说明您希望最终查询的外观,或者数据库中的内容以及您希望检索的数据集,这可能会有所帮助。我的订单表包含以下字段:id、数量、产品id、用户id。当客户购买产品时,他可以检索历史记录,因为他的id已保存。我正在尝试检索所选产品的信息,并将其显示给注册该产品的用户(公司)。如果您知道最终的SQL查询应该是什么样子,这也将有助于更好地了解查询生成器可能存在的问题。您使用什么方法进行身份验证?旧组件还是新插件?查看文档了解如何获取登录用户,并将其添加到
where
子句中。我这样做:$This->getRequest()->getSession()->read('Auth.user.id')。但是,我需要按产品id进行筛选,以显示所选产品以及属于注册用户的产品。我输入的代码的结果返回用户id。您对您尝试执行的操作的描述可以用许多不同的方式进行解释,很难理解您的确切意思/您遇到的问题到底是什么。如果您可以提供一个示例,说明您希望最终查询的外观,或者数据库中的内容以及您希望检索的数据集,这可能会有所帮助。我的订单表包含以下字段:id、数量、产品id、用户id。当客户购买产品时,他可以检索历史记录,因为他的id已保存。我正在尝试检索所选产品的信息,并将其显示给注册该产品的用户(公司)。如果您知道最终SQL查询的外观,这也将有助于更好地了解查询生成器可能存在的问题。