代码之家  ›  专栏  ›  技术社区  ›  Sharjeel

CakePHP:如何在检索数据时指定模型?

  •  0
  • Sharjeel  · 技术社区  · 14 年前

    我想用递归级别3检索数据。问题是它添加了所有8个链接模型,但我只需要三个数据模型的数据。有没有什么方法可以忽略一些模型或者特别询问一些模型,但不是全部。像useModel('Model1','Model2')?

    1 回复  |  直到 14 年前
        1
  •  5
  •   Leo    14 年前

    最好使用 Containable 行为,允许您指定如下查找条件:

    $this->Post->find('all', array(
        'contain' => array(
            'Tag', 
            'Comment' => array(
                'User')
                )
            )
        );
    

    另外,结合这一点,在AppModel中将$recursive设置为-1也是很好的。

    class AppModel extends Model {
        var $recursive = -1;
        var $actsAs = array('Containable');
    }
    

    这将为您提供所需的更精细的控制,并确保随着时间的推移,在模型中添加更多关系时,查询不会膨胀。