Mixing filters and ordering
class Movies extends \Cherrycake\Items {
protected $tableName = "movies";
protected $itemClassName = "\CherrycakeApp\Movie";
function fillFromParameters($p = false) {
// Treat parameters
self::treatParameters($p, [
"minYear" => ["default" => false],
"maxYear" => ["default" => false],
"orders" => ["addArrayKeysIfNotExist" => [
"released" => "movies.year asc",
"title" => "movies.title asc"
]]
]);
// Modify $p accordingly
if ($p["minYear"]) {
$p["wheres"][] = [
"sqlPart" => "movies.year >= ?",
"values" => [
[
"type" => \Cherrycake\DATABASE_FIELD_TYPE_INTEGER,
"value" => $p["minYear"]
]
]
];
}
if ($p["maxYear"]) {
$p["wheres"][] = [
"sqlPart" => "movies.year <= ?",
"values" => [
[
"type" => \Cherrycake\DATABASE_FIELD_TYPE_INTEGER,
"value" => $p["maxYear"]
]
]
];
}
// Call the parent fillFromParameters
return parent::fillFromParameters($p);
}
}Last updated