模型查找返回CakePHP中的所有行


Model find returning all rows in CakePHP

这个问题让我很困惑,我希望你能帮我。

我在CakePHP(2.x)中有一个模型,它引用了另一个这样的模型:

<?php
App::uses('MyClass2', 'Model');
class MyClass1 extends AppModel {

稍后在课堂上,我在MyClass2:上调用find('all')

$params = array(
    'MyClass2.user_id' => $user_id
);
$my_class2 = new MyClass2();
$data = $my_class2->find('all', $params);

但是,它不是只返回与$user_id匹配的行,而是返回数据库中的每一行。我可以确认$user_id被正确地保存在数据库中,并且被正确地初始化,但它仍然总是返回所有数据,而不是只返回与$user_id匹配的行。我应该怎么做才能从MyClass1内部的MyClass2获取仅与正确的$user_id匹配的数据?

您需要在params中添加conditions数组:)

$params = array(
    'conditions' => array(
        'MyClass2.user_id' => $user_id
    )
);