首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Laravel 5中运用核心价值?

如何在Laravel 5中运用核心价值?
EN

Stack Overflow用户
提问于 2017-04-19 20:51:07
回答 1查看 515关注 0票数 0

例如,table1和table2,并通过枢轴表连接在一起

代码语言:javascript
运行
复制
table1: {
    pivot: {
        pivot_value1: 1
    },
    table2: {
        ....    
    }
}

代码:

代码语言:javascript
运行
复制
table1::with(['table2' => function($q) {
    $q->where('table2_property1', 'pivot_value1') // <= how to access pivot value?
}])
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-20 05:03:21

在您定义关系的模型中,我们需要在建立关系时使用withPivot()函数,例如在您的table1模型中;

代码语言:javascript
运行
复制
class Table1 {
       public function table2() {
        return $this->belongsToMany('App\Table2')->withPivot('column1', 'column2');
      }
} 

通常在枢轴表中有三个cloumns,另外,如果我们添加了额外的列(比如column1 & column2 ),我们就可以得到这些额外的cloumns的值。在这里,column1 & column2是枢轴表中访问这些列值的附加列:

代码语言:javascript
运行
复制
    $table1 = Table1::find(1);

     foreach ($table1->table2 as $table) {
      echo $table->pivot->column1;
      echo $table->pivot->column2;
     }

另一种使用查询生成器的解决方案:

代码语言:javascript
运行
复制
Table1::whereHas('table2', function($q) {
    $q->where('table2_property1', 'pivot_value1');
})
->get();

上面的代码只是一个例子,您可以修改它来完善您的需求。希望能帮上忙。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43505810

复制
相关文章

相似问题

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