Pages::addWhere($field[,$operator],$value)

Version 2019.1

Add new where clause to query

Operator is not implemented in every fieldtype!!!

Return value

$this

Arguments

$field
Field name to search from
$operator
Query operator: =, !=, <, <=, >, >=, LIKE, NOT LIKE
Default: Fieldtype defines how to search
$value
Search criteria

Full documentation

Get all projects that are open: NOTE!!! This will inititate LIKE -search when textfield.

$Projects = $this->get('pages','project')->addWhere('status', 'open);

Get products that have exactly given value:

$Projects = $this->get('pages','product')->addWhere('code', '=', '1234');

Only examples in this document are tested.

Only examples in this document are tested.

Fieldtypes that implement and is tested for addWhere():
Id: nr
Number: luku, raha, jarjestys, arvosana
String: nimi, ingressi, teksti, puhelin, sahkoposti, url
Date: paiva
Time: kello, kesto
Not tested:
tag, muistiinpano, tehtava
tiedosto
monivalinta
rekisterinumero
henkilo, yritys, osoite
kommentti
kayttaja
viite
bool
aikaleima

ID field

Fieldtypes: id

$idList may be comma delimited list or array.

$Pages->addWhere('id', $idList); // Default: IN
$Pages->addWhere('id', '=', $idList); // Same as IN
$Pages->addWhere('id', 'IN', $idList);
$Pages->addWhere('id', '!=', $idList); // Same as NOT IN
$Pages->addWhere('id', 'NOT IN', $idList );
$Pages->addWhere('id', '<', $int ); // Also <=, >, >=
// Not implemented:
// LIKE, NOT LIKE - Makes no sence
// IS NULL, IS NOT MULL - Cant be null

String field

Fieldtypes: name, description, text, phone, email, url

$list may be comma delimited list with "" value delimiters or array.

$Pages->addWhere('name', $string); // Default: LIKE
$Pages->addWhere('name', '=', $string); // Exact value
$Pages->addWhere('name', '!=', $string); // Exactly NOT value

$Pages->addWhere('name', 'IN', $list); // Exactly one of the given values.
$Pages->addWhere('name', 'NOT IN', $list ); // Exactly NOT one of the given values.

$Pages->addWhere('name', 'LIKE', $string); // Contains text. Default: %string%
$Pages->addWhere('name', 'LIKE', $arrayList); // Contains one of given texts.
$Pages->addWhere('name', 'NOT LIKE', $string); // Does not contain text. Default: %string%
$Pages->addWhere('name', 'NOT LIKE', $arrayList); // Does not contain any of given texts.

$Pages->addWhere('name', 'IS NULL');
$Pages->addWhere('name', 'NOT NULL');

// Not implemented:
// <, >, <=, >= - Makes no sence
// IS NULL, IS NOT MULL - Cant be null

Number field

Fieldtypes: number, money, order, rate

$list may be comma delimited list with "" value delimiters or array.

$Pages->addWhere('number', $string); // Default: =
$Pages->addWhere('number', $arrayList); // One of given values
$Pages->addWhere('number', '=', $string); // Exact value
$Pages->addWhere('number', '!=', $string); // Exactly NOT value

$Pages->addWhere('number', 'IN', $list); // Exactly one of the given values.
$Pages->addWhere('number', 'NOT IN', $list ); // Exactly NOT one of the given values.

$Pages->addWhere('number', 'LIKE', $string); // Contains text. Default: %string%
$Pages->addWhere('number', 'LIKE', $arrayList); // Contains one of given texts.
$Pages->addWhere('number', 'NOT LIKE', $string); // Does not contain text. Default: %string%
$Pages->addWhere('number', 'NOT LIKE', $arrayList); // Does not contain any of given texts.

$Pages->addWhere('number', 'IS NULL');
$Pages->addWhere('number', 'NOT NULL');

Selection field

$Pages->addWhere('name', '<', 'Three'); // All where value before given argument

Join field

$Pages->addWhere('customer', $string);           // Default: customer.title LIKE
$Pages->addWhere('customer', $idList);           // Default: customer.nr IN ()
$Pages->addWhere('customer', 'LIKE', $idList);   // customer.title
$Pages->addWhere('customer', 'NOT LIKE');        // customer.title
$Pages->addWhere('customer', 'IN', $idList);     // customer.nr IN ()
$Pages->addWhere('customer', 'NOT IN', $idList); // customer.nr NOT IN ()

Find from join table field:

$Pages->addWhere('customer.active', 'Given'); // Find active customers

Reference field

Find from referring table field:

$Pages->addWhere('invoice__customer.state', 'Open'); // Find customers that has open invoices

Deleted pages

$Pages->addWhere('poistetut', '0'); // Find only pages that are not deleted
$Pages->addWhere('poistetut', '1'); // Find only deleted pages
$Pages->addWhere('poistetut', 'kaikki'); // Find all pages