繁体   English   中英

使用选择查询构建器

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM