public function testField() { $where = Where::field('foo'); $exp = $where->equals(10); $this->assertInstanceOf(Where\FieldExpressionBuilder::class, $where); $this->assertEquals(Expr::eq(Expr::field('foo'), Expr::value(10)), $exp); }
<?php require __DIR__ . '/../vendor/autoload.php'; use Magento\Component\QueryLanguage\Expression\Transformer\Configuration; use Magento\Component\QueryLanguage\Expression\Transformer\SQLTransformerBuilder; use Magento\Component\QueryLanguage\Expression\Where; // Build or hydrate query $query = Where::all([Where::field('name')->contains('Snow'), Where::field('age')->between(25, 30)]); // Initiate database connection $pdo = new \PDO('sqlite::memory:'); // Load sample data array_map([$pdo, 'exec'], ['CREATE TABLE people (id INT, name VARCHAR(10), age INT);', 'INSERT INTO people VALUES(1, "John Snow", 30);', 'INSERT INTO people VALUES(2, "Ramsay Snow", 31);']); // Create transformer $transformer = SQLTransformerBuilder::make()->build(); // Transform query into SQL clause $clause = $transformer->transform($query, Configuration::make()); // Execute query $stmt = $pdo->prepare('SELECT * FROM people WHERE ' . $clause->getWhere()); $stmt->execute($clause->getParameters()); // Fetch results $people = $stmt->fetchAll(PDO::FETCH_ASSOC); var_dump($people);
public function testNotMatch() { $filter = $this->transformer->transform(Where::not(Where::field('name')->contains('n')), $this->config); $result = array_filter($this->data, $filter); $this->assertEquals(['joey'], array_keys($result)); }
public function testNotMatch() { $sql = $this->transformer->transform(Where::not(Where::field('email')->contains('@magento.com')), $this->config); $this->assertEquals('NOT (phpunit.email LIKE ?)', $sql->getWhere()); $this->assertEquals(['%@magento.com%'], $sql->getParameters()); }
public function testNotMatch() { $result = $this->find(Where::not(Where::field('name')->contains('n'))); $this->assertEquals(['joey'], $result); }