add( new Column('Name'), new Column('Department'), new Column('SubDepartment'), ); $this->tableSettings = new GenericTableSettings(new Product(), $columns, true); } public function dispatchCallback(\Mmt\GenericTable\Support\EventArgs $arguments): void { if($arguments instanceof DatabaseEvent) { if($arguments->queryState == DatabaseEventQueryState::INITIALIZING) { $arguments->builder->join('sub_departments', 'sub_departments.id', 'products.sub_department_id') ->join('departments', 'departments.id', 'sub_departments.department_id') ->select( 'products.name as name', 'departments.name as department', 'sub_departments.name as sub_department' ); } } } }