Рефакторинг кода Laravel

212
30 мая 2022, 21:00

подскажите пожалуйста, код рабочий но хороший ли он с точки зрения написании правильного кода? Можно ли его как нибудь отрефакторить ?

У 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();
Answer 1

Для упрощения задачи вы можете использовать тип связи 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;

для получения идентичного результата

READ ALSO
Как заставить queue:work работать на хостинге Laravel

Как заставить queue:work работать на хостинге Laravel

Сразу предупреждаю, я знаю, что на эту тему есть много темОднако большинство этих тем относятся к 2014 и 2015 годам, когда еще существовал тег...

272
Загрузка изображений на сервер и в БД - PHP

Загрузка изображений на сервер и в БД - PHP

Уважаемые программисты, при использовании кода неккоректно добавляются изображения в БДДанный код загружает без проблем файлы на сервер,...

157
Открыть старую dll

Открыть старую dll

Есть старый ассет для Unity - последняя версия была дляNET 3

191
Групировка Datagrid

Групировка Datagrid

Как сделать групировку datagrid? Мне надо групировка по одному столбцуВот мой DataGrid:

334