コード例 #1
0
 /**
  * @param AbstractDb $collection
  * @return AbstractDb
  * @throws LocalizedException
  */
 protected function applySelection(AbstractDb $collection)
 {
     $selected = $this->request->getParam(static::SELECTED_PARAM);
     $excluded = $this->request->getParam(static::EXCLUDED_PARAM);
     if ('false' === $excluded) {
         return $collection;
     }
     try {
         if (is_array($excluded) && !empty($excluded)) {
             $collection->addFieldToFilter($collection->getIdFieldName(), ['nin' => $excluded]);
         } elseif (is_array($selected) && !empty($selected)) {
             $collection->addFieldToFilter($collection->getIdFieldName(), ['in' => $selected]);
         } else {
             throw new LocalizedException(__('Please select item(s).'));
         }
     } catch (\Exception $e) {
         throw new LocalizedException(__($e->getMessage()));
     }
     return $collection;
 }