*/ class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * Rating votes table * * @var string */ protected $_ratingVoteTable; /** * Define model * * @return void */ protected function _construct() { $this->_init( \Magento\Review\Model\Rating\Option::class, \Magento\Review\Model\ResourceModel\Rating\Option::class ); $this->_ratingVoteTable = $this->getTable('rating_option_vote'); } /** * Add rating filter * * @param int|array $rating * @return $this */ public function addRatingFilter($rating) { if (is_numeric($rating)) { $this->addFilter('rating_id', $rating); } elseif (is_array($rating)) { $this->addFilter('rating_id', $this->_getConditionSql('rating_id', ['in' => $rating]), 'string'); } return $this; } /** * Set order by position field * * @param string $dir * @return $this */ public function setPositionOrder($dir = 'ASC') { $this->setOrder('main_table.position', $dir); return $this; } }