在巴黎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'
的供应商
我不太确定如何实现这一目标。
答案 0 :(得分:0)
我拿了一个平底船,答案比我预想的要容易:
public function featuredProfiles() {
return $this->profiles()->where('featured', 'Yes');
}
将where作为查询的一部分添加到连接表中。