UnionRenderer.php 1011 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Framework\DB\Select;
  7. use Magento\Framework\DB\Select;
  8. /**
  9. * Class UnionRenderer
  10. */
  11. class UnionRenderer implements RendererInterface
  12. {
  13. /**
  14. * Render UNION section
  15. *
  16. * @param Select $select
  17. * @param string $sql
  18. * @return string
  19. */
  20. public function render(Select $select, $sql = '')
  21. {
  22. if ($select->getPart(Select::UNION)) {
  23. $sql = '';
  24. $parts = count($select->getPart(Select::UNION));
  25. foreach ($select->getPart(Select::UNION) as $cnt => $union) {
  26. list($target, $type) = $union;
  27. if ($target instanceof Select) {
  28. $target = $target->assemble();
  29. }
  30. $sql .= $target;
  31. if ($cnt < $parts - 1) {
  32. $sql .= ' ' . $type . ' ';
  33. }
  34. }
  35. }
  36. return $sql;
  37. }
  38. }