cakephp从一个表中检索数据,不包括关联的表

时间:2014-09-18 23:22:14

标签: mysql cakephp

我正在努力解决一个基本问题。我正在使用蛋糕php 2.5。我尝试在公司模型中应用查找查询并从公司及其关联中接收所有数据,但我只想从公司表中接收数据并希望从其他关系中排除数据,任何人都可以帮助我这个。以下是我的疑问。

    $this->loadModel('Company');
    $fields=array('id','name','logo','status');
    $conditions=array('status'=>1);
    $search_companies =    $this->Company->find('first',
    compact(array('conditions'=>$conditions,'fields'=>$fields)));
    print_r($search_companies);die();
    echo json_encode($search_companies);die();

3 个答案:

答案 0 :(得分:0)

没有看到你的数据输出,我只是想解决这个问题。

$search_companies变量中,您可能会获得一个多维数组,可能还有其他表的其他值。

为什么不选择一个数组:

$wantedData = $search_companies['Company']; 
// The key Company (which is the model) should be the data you are wanting.

答案 1 :(得分:0)

尝试将模型的递归值设置为-1

$this->Company->recursive = -1;
$search_companies =    $this->Company->find('first',
  compact(array('conditions'=>$conditions,'fields'=>$fields)));

使用此功能,您将不会触发连接查询,因此您只能检索模型的信息。

答案 2 :(得分:0)

Cakephp提供此功能,我们可以解除任何模型上的几个/所有关联。关键字unbindModel用于此目的。在unblindModel中,您可以定义要为该特定关联取消隐藏的关联类型和模型名称。

$ this-> CurrentModelName-> unbindModel(array('AssociationName'=> array('ModelName_Youwwant_unblind')));