簡體   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