首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按关系ID获取模型

按关系ID获取模型
EN

Stack Overflow用户
提问于 2015-09-28 08:05:42
回答 2查看 38关注 0票数 0

我有一个Accomodation和一个Feature模型。住宿可以有很多特色(厨房、阳台等)。通过accomodation_feature枢轴表:

代码语言:javascript
复制
//accomodation model
public function features()
{      
    return $this->belongsToMany('Feature');
}

我想选择所有已激活所有所选功能的住宿。例如,我想要所有有阳台、厨房和微波炉的房间。

我试过以下方法,但我得到了所有有阳台、厨房或微波炉的食宿:

代码语言:javascript
复制
$features = array("1", "2", "3"); //id's of the features I want to select

$accomodations = Accomodation
::whereHas('features', function($q) use ($features)
                {
                    $q->whereIn('features.id', $features);
                })                                
->get();

如何选择所有具有所提供功能的 all 的住宿?

预先感谢您的帮助,并为(可能)误导性标题表示歉意。我想不出比这更合适的事了。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-09-28 08:40:02

使用whereHas()方法的额外参数:

代码语言:javascript
复制
whereHas($relation, Closure $callback, $operator = '>=', $count = 1)

即:

代码语言:javascript
复制
Accomodation::whereHas('features', function($q) use ($features) {
    $q->whereIn('features.id', $features);
}, '>=', count($features))->get();
票数 1
EN

Stack Overflow用户

发布于 2015-09-28 08:45:46

其中绝对是错误的。试着循环使用您的功能:

代码语言:javascript
复制
for each($features as feature)
    $q->where('features.id', feature);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32818305

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档