【发布时间】:2014-10-08 10:13:01
【问题描述】:
我有两个模型:Client和User,每个模型之间的关系是belongsToMany。
我想获取属于某个客户端的所有用户,并通过 ID 引用该客户端。我想不出我会怎么做,除非我以Client开头并使用with,即
$client = Client:find($client_id);
return $client->users();
但我不想得到客户。有没有办法直接获取用户?
之所以不想获取客户端,是因为我只想选择一些列,而根据this,它仍然不可用。即使我尝试它,它仍然会返回 all 列。
我的模型定义是:
客户端模型:
public function users()
{
return $this->belongsToMany('User');
}
用户模型:
public function clients()
{
return $this->belongsToMany('Client');
}
【问题讨论】:
-
向我们展示您在模型中的关系定义,请
-
@pc-shooter,我做到了。但它是非常基本的单行代码
-
如果您想要所有用户,您肯定需要从客户端开始吗?在这种情况下,只需执行
$users = Client::find($client_id)->users;。 -
@MartinBean,是的,这正是我上面所说的。但是,我想选择用户的特定列,由于 belongsToMany 不允许你这样做,我不想参考 Client
-
这么多用户属于许多客户,反之亦然?