public function getAllPrices() { if ($this->_prices) { return $this->_prices; } if ($this->id) { $id = $this->id; } else { $id = 0; } $this->_prices = Prices::find()->select('*')->rightJoin(PriceTypes::tableName() . ' as price_types', Prices::tableName() . '.price_type_id = price_types.id AND ' . Prices::tableName() . '.product_id =' . (int) $id)->where('price_types.status != :status', ['status' => PriceTypes::STATUS_INACTIVE])->orderBy('price_types.order')->all(); /* $this->_prices = PriceTypes::find() ->where(PriceTypes::tableName().'.status != :status', ['status'=>PriceTypes::STATUS_INACTIVE]) ->orderBy('price_types.order') ->joinWith(['prices'=>function($query) use ($id) { if($id){ return $query->where(Prices::tableName().'.product_id=:product_id', [':product_id' => $id]); } }])->all();*/ return $this->_prices; }