先引入Builder类sql
use Phalcon\Mvc\Model\Query\Builder as QueryBuilder;
public function mytestAction(){ $builder = new QueryBuilder(); //肯定查询表 $builder -> from(['parts'=>'Test3\Frontend\Models\Parts']); //关联表 $builder -> innerJoin('Test3\Frontend\Models\Robots', 'robots.id = parts.robots_id','robots'); // 须要查询的字段,这里两个表的字段均可以 $builder -> columns([ 'robots.name', 'parts.id', 'count(parts.id) as count', //当数据很大时,统计数据时用 ]); // where条件 $builder -> where('parts.id = :id:',array('id' =>1)); // andWhere $builder -> andWhere('robots.name = :name:',array('name' => '你好')); //执行搜索 if (isset($params['conditions'])) { foreach ($params['conditions'] as $field => $val) { if (!preg_match('/^\s*$/', $val)) { //执行模糊搜索 $builder->andWhere("providers.$field like :$field:", array($field => '%' . trim($val) . '%')); } } } // 设置limit条件,order什么的均可以日后加$builder->order() $builder->limit(5,5); // $builder->limit($rows, ($currentPage - 1) * $rows); 注意:这里的limit条件和原始sql语句中的limit语句恰好相反 //获取查询对象 $query = $builder->getQuery(); //执行并返回结果 $result = $query->execute(); var_dump($result -> toArray());die; }