Skip to main content

Available Transformations

All expressions are created using the Andach\ExtractAndTransform\Transform\Expr factory class.

Column Selection​

The col() function simply selects a column and does nothing more.

use Andach\ExtractAndTransform\Transform\Expr;

// Select the 'price' column
Expr::col('price')

Concatenation​

The concatenation function accepts a number of strings. These could be literals, or results of the Expr::col() function call.

// Result: "John Smith"
Expr::concat(Expr::col('first_name'), ' ', Expr::col('last_name'))

// Result: "ID: 123"
Expr::concat('ID: ', Expr::col('id'))

Static Mapping (Case Statement)​

These are discussed in more detail in the mapping documentation section.

Lookups (Left Joins)​

These are discussed in more detail in the lookups documentation section.

Chainable Methods​

Expressions can be modified by chaining methods.

Numeric Operations​

These methods can be chained onto any expression that resolves to a number.

  • add(mixed $value): Adds a value or column.
  • subtract(mixed $value): Subtracts a value or column.
  • multiply(mixed $value): Multiplies by a value or column.
  • divide(mixed $value): Divides by a value or column.
// Calculate tax: price * 0.2
Expr::col('price')->multiply(0.2)

// Calculate total: (subtotal + tax) - discount
Expr::col('subtotal')
->add(Expr::col('tax'))
->subtract(Expr::col('discount'))

String Functions​

These methods can be chained onto any expression that resolves to a string.

  • upper(): Converts string to uppercase.
  • lower(): Converts string to lowercase.
  • trim(): Removes whitespace from both ends.
  • replace(string $search, string $replace): Replaces all occurrences of a search string.

For example:

// Normalize email: LOWER(TRIM(email))
Expr::col('email')->trim()->lower();

// Create slug: LOWER(REPLACE(name, ' ', '-'))
Expr::col('name')->replace(' ', '-')->lower();