public function getRootRoles() { $raw = AuthItem::find()->where(['type' => 1])->asArray()->all(); $allRoles = array(); foreach ($raw as $row) { $allRoles[$row['name']] = $row['name']; } $sql = 'SELECT DISTINCT auth_item.name FROM 13027272d.auth_item, 13027272d.auth_item_child WHERE 13027272d.auth_item.name = 13027272d.auth_item_child.child AND type = 1'; $raw = AuthItem::findBySql($sql)->asArray()->all(); $chileRoles = array(); foreach ($raw as $row) { $chileRoles[$row['name']] = $row['name']; } return array_diff($allRoles, $chileRoles); }