繁体   English   中英

使用cakephp中的内部联接显示来自两个表的数据

[英]display data from two tables using inner join in cakephp

我正在使用cakephp。 我有两个表的名称和性别。 我要显示性别名称。 但姓名只与男性一起显示。 性别上也有女性,但未被选中。 我的代码如下。

$this->loadModel("names");

          $modelmerge = $this->names->bindModel(array
    (
        'belongsTo' => array
        (
            'genders' => array
            (
                'foreignKey' => false,
                'conditions' => array
                (
                    'genders.id = names.genders_id'
                )
            )
        )
    ));

    $this->set("names", $this->names->find('all', array('limit' => 10)));

仅在names.genders_id = 1个其余未选中的地方选择此选项。 请指导。

我假设您使用的是CakePHP的旧版本,或者您使用的是错误的命名约定。

$modelmerge = $this->names->bindModel(
  array(
    'belongsTo' => array(
       'genders' => array(
          'classname' => 'Genders',
          'foreignKey' => genders_id
       )
    )
  )
);
$names = $this->names->find('all', array(
  'limit' => 10,
  'recursive' => 0
));
$this->set("names", $names);

以下可能会起作用。 但是,我建议您阅读有关Models / DB列Model AssociationsContainable Behavior命名 这些链接适用于2.x版本,但我认为您可能使用的是1.3或更早版本,因此请参考旧书。

你可以不用bindModel就可以做到

$this->names->find('all', 
    array(
        'limit' => 10,
        'joins' =>
            array(
                array(
                    'table'         => 'genders',
                    'type'          => 'INNER',
                    'conditions'    => array('genders.id = names.genders_id')
                ),
            ),
    )
);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM