这是一个相当简单的要求,但我不确定如何以Laravel的方式做到这一点。我有一个简单的类别,项目来源和项目结构,我只需要获取活动项目。
以上所有项目均可设置为有效或无效。如果'Tech'设置为非活动状态,我将只从其他类别来源获取新闻项目,例如。科普和广告牌。
自定义查询会执行此操作,但我想知道是否有更有说服力的[原文如此]的方法。
答案 0 :(得分:0)
类别模型可以具有有很多来源的功能,我们称之为来源()。 来源模型的功能应该是有很多新闻:功能新闻()。 然后你可以这样做:
$news=App\Category::find($categoryID)->sources()->get()->news()->where('active',1)->get();
如果您只想从活跃来源获取新闻:
$news=App\Category::find($categoryID)->sources()->where('active',1)->get()->news()->where('active',1)->get();
您也可以在类别模型中进行自定义功能,如:
public function activeSources(){
return App\Source::where('category_id',$this->id)->where('active',1)->get();
}
然后得到这样的消息:
$news=App\Category::find($categoryID)->activeSources()->news()->get();