首页 > 代码库 > PHALCON理解PHQL的一个坑

PHALCON理解PHQL的一个坑

在PHALCON的官方文档中,对PHQL的说明算是挺清晰了,值得一提的是,当在多modules项目中这个官方文档就有坑。特此记录。

PHQL对数据库的的操作不是直接的运行SQL,而是对模型文件的转化,形如有phql如下:

"SELECT * FROM member"  ->如果直接以SQL去理解很简单。但在PHQL中是以member为模型,然后对getSource()方法返回值的表进行操作。转换之后SQL形如

"SELECT * FROM ".new Member()->getSource();

此时如果未在loader中注册类或者,没有附带上命名空间信息则会报错 model not found,

模型命名空间形如namespace Shop\Models;在PHQL中的SELECT *语句应该为 

"SELECT * FROM Shop\Models\Member" 而非from表名;

PHALCON理解PHQL的一个坑