gpt4 book ai didi

php - Laravel - 选择多对多关系的特定列

转载 作者:可可西里 更新时间:2023-11-01 12:22:02 27 4
gpt4 key购买 nike

我的 Laravel 4.2 网络应用程序中有两个模型,UserGroup。一个用户可以是多个组的成员,一个组可以有多个成员。因此,这两个模型都通过多对多关系连接在一起:

<?php
class User extends Eloquent {
public function groups()
{
return $this->belongsToMany('Group');
}
}

class Group extends Eloquent {
public function users()
{
return $this->belongsToMany('User');
}
}
?>

我的 API 资源之一是 /groups,它列出了应用程序中可用的所有组:

<?php
$groups = Group::with('users')->all();
?>

这是可行的,但是在 JSON 响应中,每个用户都包含 users 表中的所有字段(当然不包括 $hidden 属性中的字段)。我希望这种关系只返回一组特定的字段而不是整个表。

在其他关系类型中,我可以使用以下语句轻松实现这一点(现在假设用户可能只属于一个组):

<?php
public function users()
{
return $this->hasMany('User')->select(['id', 'first_name', 'last_name']);
}
?>

然而,以上内容似乎不适用于多对多关系。我遇到了this question这显然指的是同一个问题,看起来这在 Laravel 4.1 中是不可能的。所选答案的作者 tptcat 在 Laravel 的 Github 问题跟踪器上提供了一个问题的链接,但该链接不再有效,我不知道这个问题是否在 4.2 中仍然存在。

有人遇到过这个问题并成功解决了吗?

最佳答案

{
return $this->belongsToMany('User')->select(array('id', 'name'));
}

用这个

关于php - Laravel - 选择多对多关系的特定列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24496374/

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