繁体   English   中英

来自2个不同表的SQL查询cakePHP 1.2

[英]SQL Query cakePHP 1.2 from 2 different tables

在cakephp 1.2中,我有一个包含书单的表(biblio),还有一个有标签列表的表(tematiche)。
我有以下代码来获取书籍清单:

if (isset($autore_diviso))
        {
            $dim=count($autore_diviso);
            $i=0;
            while ($i<$dim)
            {
                $conditions[]=array ('autori LIKE ?' => array(
                    '%' . $autore_diviso[$i][0] . '%'));
                $i++;
            }
        }
        else
            $conditions[]=array('autori LIKE' => "%$a%");
        if (!$anno&&!$anno2)    // Da sistemare.
            $conditions=$conditions;
        else {
        if (!$anno)
            $conditions[] = array('anno <=' => "$anno2");          
        if (!$anno2)
            $conditions[] = array('anno >=' => "$anno");
        }
        if ($anno&&$anno2)
            $conditions[] = array('anno BETWEEN ? AND ?' => array($anno,$anno2)); }


现在,我还需要获取一本书的标签,如何将其添加到此查询中?

尝试在控制器中绑定Tag model

在控制器中

<?php

$this->Book->bindModel(array
(
    'hasMany' => array
    (
        'Tag' => array
        (
            'foreignKey' => false,
            'conditions' => array
            (
                'Book.id = Tag.book_id'
            )
        )
    )
));

$books = $this->Book->find('all',array
(
    'conditions' => array
    (
        'Book.id' => 'SOME_ID'
    )
));

pr($books);
exit;

以上调试结果

Array
(
    [Book] => Array
    (
        [id] => SOMEID
        [name] => BOOKNAME
    )
    [Tag] => Array
    (
        [0] => Array
        (
            [id] => 1
            [name] => TAGNAME
            [book_id] => SOME_ID
        )
        [1] => Array
        (
            [id] => 2
            [name] => TAGNAME
            [book_id] => SOME_ID
        )
        [2] => Array
        (
            [id] => 4
            [name] => TAGNAME
            [book_id] => SOME_ID
        )
    )
)

暂无
暂无

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

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