如何使用没有ORM的phalcon查询生成器


How to use phalcon query builder without ORM

大家好,我正在尝试使用没有ORM的phalcon。我想用DataMapper模式分离业务逻辑和数据访问,我找不到如何在没有原始SQL的情况下构建查询,而是使用原始的phalcon queryBuilder。

有机会吗?

这是你要找的吗?

<?php
//Getting a whole set
$robots = $this->modelsManager->createBuilder()
    ->from('Robots')
    ->join('RobotsParts')
    ->orderBy('Robots.name')
    ->getQuery()
    ->execute();
//Getting the first row
$robots = $this->modelsManager->createBuilder()
    ->from('Robots')
    ->join('RobotsParts')
    ->orderBy('Robots.name')
    ->getQuery()
    ->getSingleResult();

From Phalcon docs: Phalcon Query Language (PHQL)

我知道怎么做了我用的是phalcon和doctrine DBAL

如果我没记错的话,我找到了两种方法来解决这个问题。

解决方案1 #

use Phalcon'Mvc'Model'Query'Builder; 
$result = $this->modelsManager->createBuilder()
  ->columns("table1.f1, table1.f2,table2.f3,table2.f4")
  ->From('table1')
  ->innerjoin('table2', 'table1.matchfield = table2.matchfield')
  ->where("table1.fieldname = '$value' ")
  ->getQuery()
  ->execute(); 

解决方案2 #

 $res = $this->db->execute("UPDATE Tablename SET field1= ?,field2=?,field3=? WHERE id = ?",array($field1,$field2,$field3,$id));