gpt4 book ai didi

php - 如何使用 Eloquent 仅批量选择数据透视表?

转载 作者:行者123 更新时间:2023-12-02 01:25:40 25 4
gpt4 key购买 nike

我有两个模型,它们之间定义了多对多 关系:UserPost。我需要访问所有用户帖子的数据透视表记录。我怎样才能做到这一点?例如:

$user->posts()->pivot()->get(); // I need to do something like this

我之所以需要这个,是为了在一个查询中对这些枢轴执行批量更新。插图示例:

// set 'times_seen' to 100 for all of the pivot records
$user->posts()->pivot()->update(['times_seen' => 100]);

最佳答案

你的问题不是很清楚,我不确定你真正需要什么,所以请提供更多细节。

pivot 表中的数据在相关模型的 $pivot 属性中可用,因此您可以通过以下方式访问它:

foreach ($user->posts as $post) {
echo $post->pivot->someFieldFromPivotData;
}

您可以在文档中找到有关如何使用数据透视表的更多信息:https://laravel.com/docs/5.1/eloquent-relationships#many-to-many

更新所有相关数据透视表行的最有效方法是直接对该表进行操作:

// to set to fixed value
DB::table('pivot_table_name')->where('user_id', $user->id)->update(['times_seen' => 1]);

// to increment by one
DB::table('pivot_table_name')->where('user_id', $user->id)->increment('times_seen');

关于php - 如何使用 Eloquent 仅批量选择数据透视表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37210188/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com