簡體   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