[英]Query builder with select
我正在尝试从联接结果中选择一些列。 查询是:
$queryBuilder = new \Phalcon\Mvc\Model\Query\Builder();
$queryBuilder->columns(array('L.*', 'S.build_id'));
$queryBuilder->addFrom('Gadwin\Models\Licenses', 'L');
$queryBuilder->join('Gadwin\Models\Serials', 'S.id = L.serial_id', 'S');
$resultset = $queryBuilder->getQuery()->execute();
如果我删除了columns方法,该查询将起作用并返回一个Licenses集合。 但是,如果我设置columns方法,则会返回一个空数组。
有任何想法吗 ?
而不是查询生成器,请尝试在phalcon中使用原始sql 。
在模型中创建一种方法。
public function myRawSql()
{
$query = "SELECT * FROM your_table WHERE some_condition";
$modelObj = new ModelName(); // Create object of your model
return $modelObj->getReadConnection()->query($query)->fetchAll();
}
我看到您要求从2个表中得出结果。 在这种情况下,Phalcon将返回ComplexResultSet,而不是ResultSet。 在$ resultset上尝试get_class,如果它是ComplexResultSet,则可以对其进行迭代以访问其行。 应该是这样的:
----------------------------------
| Licence (object) | s.id (int ) |
----------------------------------
| Licence (object) | s.id (int ) |
----------------------------------
通常,还尝试使用调试工具(例如Kint)检查变量。 这可能会很有帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.