久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

帶有“hasAndBelongsToMany"控制器的 CakePHP 條件查

CakePHP conditional query with controller that #39;hasAndBelongsToMany#39;(帶有“hasAndBelongsToMany控制器的 CakePHP 條件查詢)
本文介紹了帶有“hasAndBelongsToMany"控制器的 CakePHP 條件查詢的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

我為這個可怕的標題道歉,我想不出如何解釋我的問題.

I apologize for the horrible title, I couldn't think of how to explain my problem.

在我的數(shù)據(jù)庫中,我有以下表格:articlestagsarticles_tags.一篇文章可以有多個標簽.

In my database I have the following tables, articles, tags, and articles_tags. An article can have many tags.

目前我能夠抓取所有帶有所有標簽的文章,但我希望能夠根據(jù)它的標簽找到文章.

Currently I am able to grab all the articles, with all the tags, but I want to be able to find articles based upon it's tags.

我的選擇很簡單:

$articles = $this->Article->find('all', array(
    // extra condition to check for tag, maybe?
    'conditions'    => array('Article.status' => 'active'), 
    'limit'         => $this->articles_per_page,
    'offset'        => ($page_num-1)*$this->articles_per_page
));

我從數(shù)據(jù)庫返回如下:

Array
(
[0] => Array
    (
        [Article] => Array
            (
                [id] => 1
            )

        [Tag] => Array
            (
                [0] => Array
                    (
                        [id] => 1
                        [name] => Ruby
                        [slug] => ruby
                        [uses] => 1
                        [ArticlesTag] => Array
                            (
                                [id] => 1
                                [article_id] => 1
                                [tag_id] => 1
                            )

                    )

            )

    )

如果我只想返回帶有 Ruby 標簽的文章怎么辦?

What do I do if I only want to return the articles with a Ruby tag?

推薦答案

試試這個

// In your Article model
function getArticleByTagSql($tag)
{       
        $dbo = $this->getDataSource();
        $subQuery = $dbo->buildStatement(
        array(
                    'fields' => array('DISTINCT(ArticlesTag.article_id)'),
                    'table' => "articles_tags",                                    
                    'joins' => array(
                                array('table' => 'tags',
                                    'alias' => 'Tag',
                                    'type' => 'INNER',
                                    'conditions' => array('ArticlesTag.tag_id = Tag.id')
                                    )
                                ),
                    'alias'=>"ArticlesTag",                                         
                    'conditions' => array("Tag.name"=>Sanitize::clean($tag_words)),
                    'order' => null,
                    'group' => "ArticlesTag.article_id"
                    ),
                    $this
                    );
                    $subQuery = ' Article.id  IN (' . $subQuery . ')';
                    return $dbo->expression($subQuery);

}

// In your Articles Controller

$this->paginate['conditions'][] = $this->Article->getArticleByTagSql($tag_name);
$this->paginate['conditions'][] = array('Article.status' => 'active');
$this->paginate['limit'] = $this->articles_per_page;



// or as per your example
$articles = $this->Article->find('all', array(
                // extra condition to check for tag, maybe?
                'conditions'    => array('Article.status' => 'active',$this->Article->getArticleByTagSql($tag_name)), 
                'limit'         => $this->articles_per_page,
                'offset'        => ($page_num-1)*$this->articles_per_page
            ));

這篇關(guān)于帶有“hasAndBelongsToMany"控制器的 CakePHP 條件查詢的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網(wǎng)!

【網(wǎng)站聲明】本站部分內(nèi)容來源于互聯(lián)網(wǎng),旨在幫助大家更快的解決問題,如果有圖片或者內(nèi)容侵犯了您的權(quán)益,請聯(lián)系我們刪除處理,感謝您的支持!

相關(guān)文檔推薦

Cannot use #39;Object as class name as it is reserved Cake 2.2.x(不能使用 Object 作為類名,因為它是保留的 Cake 2.2.x)
Session is lost after an OAuth redirect(OAuth 重定向后會話丟失)
Pagination Sort in Cakephp 3.x(Cakephp 3.x 中的分頁排序)
CakePHP Shared core for multiple apps(CakePHP 多個應(yīng)用程序的共享核心)
Login [ Auth-gt;identify() ] always false on CakePHP 3(在 CakePHP 3 上登錄 [ Auth-identify() ] 始終為 false)
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 87 bytes)(致命錯誤:允許的內(nèi)存大小為 134217728 字節(jié)已用盡(嘗試分配 87 字節(jié)))
主站蜘蛛池模板: 日韩在线免费视频 | 激情网站 | 成人精品 | av性色| 一区二区三区四区在线视频 | 中文字幕免费在线 | 亚洲视频www | 龙珠z国语版在线观看 | 国产成人免费 | 午夜天堂 | 91伦理片| 国产成人精品久久二区二区91 | 日本精品视频一区二区三区四区 | 久久久一区二区 | 久久天堂 | 国产成人精品一区二区三区视频 | 91精品国产91久久综合桃花 | 日韩精品一区二区三区四区视频 | 亚洲欧美日韩久久 | 福利片在线观看 | 久久一二区 | 欧美日韩在线观看视频网站 | 国产在线观看一区二区三区 | 国产精品色 | 嫩草视频网 | 久久99一区二区 | 成人免费看电影 | 国产综合在线视频 | 91久久久久久久久久久久久 | 免费看黄视频网站 | 羞羞视频免费在线观看 | 久久午夜国产精品www忘忧草 | 日韩中文字幕免费在线观看 | 蜜桃av一区二区三区 | 美女日批免费视频 | 日韩中文字幕在线视频观看 | 成人国产精品色哟哟 | 成人精品一区亚洲午夜久久久 | 精品一区av| 天天草天天干 | 我爱操|