【发布时间】:2020-09-04 00:03:18
【问题描述】:
朋友们,我有一个订单表,我在其中记录了用户的订单。该表有以下字段:
id、数量、product_id、user_id
通过这种方式,用户可以购买他的产品并查阅他的历史记录。问题是我想在注册产品的公司方面这样做。我只想为拥有该产品的用户按 product_id 过滤。
我的 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']);
}
【问题讨论】:
-
您使用什么方法进行身份验证?旧组件还是新插件?查看有关如何获取登录用户的文档,并将其添加到您的
where子句中。 -
我这样做:$this->getRequest()->getSession()->read('Auth.User.id')。但是,我需要按 product_id 过滤以显示已选择且属于注册用户的产品。我输入的代码的结果返回用户ID。
-
您对您正在尝试做的事情的描述可以用许多不同的方式来解释,很难弄清楚您到底是什么意思/您遇到的问题到底是什么。如果您可以提供一个您希望最终查询看起来像什么的示例,或者您的数据库中的内容以及您想要检索的数据集的示例,这可能会有所帮助。
-
我的订单表有以下字段:id、数量、product_id、user_id。当客户购买产品时,他可以检索历史记录,因为他的 id 被保存了。我正在尝试检索所选产品的信息并将其显示给注册它的用户(公司)。
-
如果您知道最终的 SQL 查询应该是什么样子,这也将有助于更好地理解您在使用查询构建器时可能遇到的问题。
标签: php cakephp cakephp-3.0