подскажите пожалуйста, код рабочий но хороший ли он с точки зрения написании правильного кода? Можно ли его как нибудь отрефакторить ?
У User есть связь branches
У Branch есть связь kassa_group
$user = User::find(1);
$collection = collect();
foreach ($user->branches as $branch) {
foreach ($branch->kassa_group as $kassa_group) {
$collection->push($kassa_group);
}
}
return $collection->all();
Для упрощения задачи вы можете использовать тип связи has-many-through:
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class User extends Model
{
public function kassa_group()
{
return $this->hasManyThrough(KassaGroup::class, Branch::class);
}
}
тогда в контроллере достаточно будет вызвать:
$user = User::find(1);
return $user->kassa_group;
для получения идентичного результата
Сборка персонального компьютера от Artline: умный выбор для современных пользователей