Skip to content

📘 MPF ORM -- Relational Operators ​

The MPF ORM provides a fluent API for building SQL conditions without manually writing operators.
These operators can be used inside where, and, or, on and onor, clauses.

Available Operators ​


Method SQL Equivalent Example


Model::gt($n) > ["age" => User::gt(18)] → age > 18

Model::gte($n) >= ["age" => User::gte(18)] → age >= 18

Model::lt($n) < ["age" => User::lt(65)] → age < 65

Model::lte($n) <= ["age" => User::lte(65)] → age <= 65

Model::like($pattern) LIKE "%pattern%" ["name" => User::like("John")] → name LIKE "%John%"


Basic Usage ​

php
// Users older than 18
$users = User::find()
    ->where(["age" => User::gt(18)])
    ->exec();

You can also call the operators function using the base Model or its shortcut M

php
use MPF\Core\DB\Model;
// Users older than 18
$users = User::find()
    ->where(["age" => Model::gt(18)])
    ->exec();
php
use MPF\Core\DB\M;
// Users older than 18
$users = User::find()
    ->where(["age" => M::gt(18)])
    ->exec();

SQL Generated

sql
SELECT users.* FROM users WHERE users.age > 18;

Combining Multiple Conditions ​

php
$users = User::find()
    ->where(["age" => User::gte(18)])
    ->and(["age" => User::lt(65)])
    ->or(["name" => User::like("John")])
    ->exec();

SQL Generated

sql
SELECT users.* FROM users
WHERE (users.age >= 18 AND users.age < 65) OR users.name LIKE "%John%";

👉 This makes it possible to chain complex conditions while keeping the query builder readable.