0

在巴黎 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'

我不太确定如何做到这一点。

4

1 回答 1

0

我赌了一把,答案比我预期的要容易:

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

where 被添加为联接表上查询的一部分。

于 2015-01-21T16:23:50.913 回答