Создайте массив для создания иерархической древовидной структуры в laravel, используя красноречивый ORM - PullRequest
0 голосов
/ 27 марта 2020

У меня есть проект со структурой таблицы:

Вверху есть профессора tb_prof Professor

имя пользователя

1 Дэвид

2 Мэтью

3 тома

Второй стол приглашенных лекторов. Здесь его немного сложно. Если приглашенный лектор имеет опыт, они могут преподавать другую гостевую лекцию, у которой нет опыта. Сначала будут отобраны опытные гостевые лекции. Тогда освежители.

tb_guest_le c

имя пользователя fk_profess_id is_experienced trainee_id

1 сара 1 1 ноль

2 яша 1 1 null

3 sam 1 0 null

4 william 1 0 1

5 luk 3 0 1

Последняя таблица - таблица студентов. Каждому гостю лекции назначаются со студентами tb_students

удостоверение личности fk_gust_lec_id

1 Лиза 1

2 Джеймса 1

3 каменщика 2

Наконец, нужна иерархическая древовидная структура. профессора сверху, под гостевыми лекциями, а также студенты низшего уровня (также группа приглашенных лекторов под руководством опытных лекторов)

$res=array();
$gl=$res['guest_lec']= DB::table('tb_guest_lec')->where('fk_professor_id','1')->select(count('id'), *)->get()->toArray();

forech($gl as $g){
    if($g['is_experienced']==1){
      $res['freshers']= DB::table('tb_guest_lec')->select(count('id'), *)->where('trainee_id',$g['id'])->get();
    }
    $res['students']= DB::table('tb_students')->select(count('id'), *)->where('fk_gust_lec_id',$g['id'])->get();
}

var_dump($res);

В блейд-цикле с помощью массива можно создать древовидную структуру.

Но можно ли сделать это простым способом, используя eloquent ?

...