首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >拉勒维尔5.多对多的关系。构建查询

拉勒维尔5.多对多的关系。构建查询
EN

Stack Overflow用户
提问于 2015-12-02 08:54:03
回答 1查看 82关注 0票数 0

表:

代码语言:javascript
复制
categories
--id

materials
--id

category_material
--id
--category_id
--material_id

型号:

代码语言:javascript
复制
class Material extends Model {
    public function categories(){
        return $this->belongsToMany('App\Category');
    }
}

class Category extends Model {
    public function materials(){
        return $this->belongsToMany('App\Material');
    }
}

我需要"category_id = 1“的所有材料

试着:

代码语言:javascript
复制
$category_id = '1';
$materials = Material::with('categories')->where('category_id', $category_id)->get();

未知列'materials.category_id'

代码语言:javascript
复制
$category_id = '1';
$materials = Material::with(['categories',function($query) use ($category_id){
    $query->where('category_id', $category_id);
}])->get();

ErrorException在Builder.php第792行:Builder.php()期望参数2是字符串,对象给定

帮帮我求你了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-02 10:55:45

传递给with的数组应该是relation_name => closure格式的

代码语言:javascript
复制
$category_id = '1';
$materials = Material::whereHas('categories', function($query) use ($category_id){
    $query->where('category_id', $category_id);
})->get();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34038432

复制
相关文章

相似问题

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