1

我有一个问题,如果我想在我的页面中搜索: - 最后 10 个注册用户 - 最后 10 个登录用户 - 最后 10 个插入产品的用户

这些查询不止一个,在我的控制器中,我必须进行更多查询,并且每个查询都将其放入一个变量中,对吗?

类似的东西?

$first_query = $this->User->find ('all', array(
                    'conditions' => array(...)
            )); 
$second_query = $this->User->find ('all', array(
                    'conditions' => array(...)
            )); 
$third_query = $this->User->find ('all', array(
                    'conditions' => array(...)
            )); 

在我看来,我将使用变量$first_query, $second_query,$third_query

查询是正确的还是更好地划分控制器上的更多功能?

4

2 回答 2

1

不,你这样做的方式是“方式”。不过,您可能应该以不同的方式命名它们,因为变量不包含任何查询,但结果和“第一”、“第二”等对内容没有任何说明。我会打电话给他们$lastRegisteredUsers$lastLoggedInUsers等等。

如果条件非常相似,例如如果您只想从一个类别或某个类别中选择用户,您可以将该条件存储在一个变量中并重用它,而不是复制粘贴。

于 2012-06-30T11:16:59.153 回答
1

您可以在控制器的操作方法中使用以下代码: 您可以将模型关联映射到自身。这将为您返回预期的结果。

$this->User->bindModel(array('belongsTo' => array('LastRegUser' => 
                                                                  array(
                                                                        'className' => 'User',
                                                                        'foreignKey' => 'id',
                                                                        'conditions' => array(...)),
                                                  'LoggedInUser' => array(
                                                                        'className' => 'User',
                                                                        'foreignKey' => 'id',
                                                                        'conditions' => array(...)) ..... )));

然后您可以简单地使用以下代码来使用以下代码获取所有用户。

$users = $this->User->find('all');
于 2012-07-02T10:33:32.227 回答