我有两个名为contacts
和clients
的表。两个表都将group_id
作为Foreign_key。现在,当用户phone
从$request->groupid
表中找到一个组时,我想从两个表中获取groups
列值。我正在尝试这样的事情。但是得到空数组。有人可以帮我吗!
$getPhoneNumbers = Group::with(['hasContacts' => function($query){
$query->select('phone')->where('is_active', 1);
}])->with(['clients' => function($q){
$q->select('phone')->where('status', 1);
}])->where('id', $request->groupid)->get();
在组模型中-
public function clients()
{
return $this->hasMany('App\Client', 'group_id', 'id');
}
public function hasContacts()
{
return $this->hasMany('App\Contact', 'group_id', 'id');
}
答案 0 :(得分:0)
如果要使用关系方法,则应首先获取组对象,然后调用它们。另外,请按照约定将hasContacts()
重命名为contacts()
。
$group = Group::find($request->groupid);
if (!$group) {
# group not found
}
$clientPhoneNumbers = $group->clients()->where('status', 1)->pluck('phone')
$contactPhoneNumbers = $group->contacts()->where('is_active', 1)->pluck('phone')
这使用pluck获得雄辩的Collection
单列。您可以使用$clientPhoneNumbers->toArray()
来获取电话号码作为一个数组(其他Collection
也是如此)。
组模型:
public function clients()
{
return $this->hasMany('App\Client', 'group_id', 'id');
}
public function contacts()
{
return $this->hasMany('App\Contact', 'group_id', 'id');
}
答案 1 :(得分:0)
您还需要选择Laravel需要的外键<your-app> has no Buildpack URL set.
,以将热切的加载结果与父母匹配:
Gemfile