Вот два способа сделать это.
Во-первых, вы можете использовать отношения Laravel: -
В вашей модели User
создать отношения: -
function addresses()
{
return $this->hasMany(Address::class, 'id1', 'id1');
}
Теперь в вашем пользовательском контроллереВы можете получить адреса (области) пользователей, например, такие:
$users = User::with('addresses')->get();
dd($users->toArray());
Это напечатает что-то вроде этого
[
{
id1: 1,
name: abaa
pwd: 12345
addresses: [
{
id2: 1,
id1: 1,
area: 2
},
{
id2: 2,
id1: 1,
area: 3
},
{
id2: 3,
id1: 1,
area: 3
}
]
},
{
...
}
]
Во-вторых, вы можете использовать отношения Laravel: -
$builder = new User;
$builder->join('addresses','users.id1','=','addresses.id1')
->selectRaw("users.*, GROUP_CONCAT(DISTINCT addresses.area SEPARATOR ',') as distinct_areas")
->groupBy("users.id1")
->get();
Этот запрос даст вам что-то вроде этого
[
{
id1: 1,
name: abaa,
pwd: 12345,
distinct_areas: 2,3
},
{
...
}
]
Я думаю, это поможет вам.