LikeQueryModifier.php 871 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  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. * Add LIKE condition to select
  10. */
  11. class LikeQueryModifier implements QueryModifierInterface
  12. {
  13. /**
  14. * @var array
  15. */
  16. private $values;
  17. /**
  18. * Constructor
  19. *
  20. * @param array $values array of field and pattern pairs of Like Clause,
  21. * for example: [<field1> => <pattern1>, <field2> => <pattern2>, ...]
  22. */
  23. public function __construct(
  24. $values = []
  25. ) {
  26. $this->values = $values;
  27. }
  28. /**
  29. * {@inheritdoc}
  30. */
  31. public function modify(Select $select)
  32. {
  33. foreach ($this->values as $field => $pattern) {
  34. $select->where($field . ' LIKE (?)', $pattern);
  35. }
  36. }
  37. }