巴黎ORM,has_many_through有限制

时间:2015-01-21 16:03:54

标签: php idiorm

在巴黎ORM中,最好的方法是什么?

我有一组类别和一组供应商资料,这些资料包含一个名为reatured的列。目前我的班级如下:

<?php

namespace {

    /**
     * Class Category
     */
    class Category extends ConfettiModel
    {
        public static $_table = 'supplier_directory_category';

        /**
         * Returns only top level categories - they have no parent
         *
         * @return bool
         */
        public static function topLevel()
        {
            return self::where('parent', 0);
        }

        public static function marketing()
        {
            return self::where('marketing', 'Yes');
        }

        public function getTable() {
            return self::$_table;
        }

        /**
         * Is this a top level category - has no parent
         *
         * @return bool
         */
        public function isTopLevel()
        {
            return ($this->parentId == 0);
        }

        /**
         * Associated DirectoryProfile's
         *
         * @return ORMWrapper
         */
        public function profiles()
        {
            return $this->has_many_through('DirectoryProfile', 'CategoryDirectoryProfile', 'category', 'supplier');
        }
}

我想添加一个新功能featuredProfiles(),它允许我检索与profiles()相同的结果,但在这种情况下,我想将其限制为featured = 'Yes'的供应商

我不太确定如何实现这一目标。

1 个答案:

答案 0 :(得分:0)

我拿了一个平底船,答案比我预想的要容易:

public function featuredProfiles() {
    return $this->profiles()->where('featured', 'Yes');
}

将where作为查询的一部分添加到连接表中。