Как получить массив id связаных моделей hasMany?

Вот модели в скобках атрибуты Category(id,title), CatToProd(id,id_category,id_product), Product(id,title)
вот связи в модели Product
public function getCategorys(){
        return $this->hasMany(Category::className(),['id'=>'id_category'])->viaTable('cat_to_prod', ['id_product' => 'id']);
    }

    public function getCatToProd(){
        return $this->hasMany(CatToProd::className(),['id_product' => 'id']);
    }

вот так пытаюсь получить id категории для использования в select2
public function getDataCategory($model){
        $categorys=$model->categorys;
        $arrResult=array();
        foreach ($categorys as $category){
            $arrResult[]=$category->id;
        }
        return $arrResult;
    }

мне не очень нравится этот код а как вы получаете. Получить надо массив вида [1,2,3]
  • Вопрос задан
  • 86 просмотров
Решения вопроса 1
@davidnum95
public function getDataCategory($model){
       return array_column($model->categorys, 'id');
    }
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы