Example using column map with the two first letters of each word of the model name as alias prefix column :
$currentPage = 1;
if($this->request->isPost()){
$query = Criteria::fromInput($this->di, 'Robot', $_POST);
$query->join('RobotPart', 'ro_id = ropa_robot_id');
$params = $query->getParams();
$queryPart = Criteria::fromInput($this->di, 'RobotPart', $_POST);
$paramsPart = is_null($queryPart->getParams()) ? null : $queryPart->getParams();
if(!is_null($paramsPart)){
$params['conditions'] .= ' and '.$paramsPart['conditions'];
}
$this->persistent->parameters = $params;
} else {
$currentPage = $this->request->getQuery("page", "int");
}
$parameters = $this->persistent->parameters;
if (!is_array($parameters)) {
$parameters = [];
}
$robots = Robot::find($parameters);
if (count($robots) == 0) {
$this->flash->notice("The search did not find any robot");
// ...
}
$paginator = new Paginator([
"data" => $robots,
"limit"=> 20,
"page" => $currentPage
]);
$this->view->page = $paginator->getPaginate();