本文整理汇总了PHP中Magento\Framework\DB\Select::having方法的典型用法代码示例。如果您正苦于以下问题:PHP Select::having方法的具体用法?PHP Select::having怎么用?PHP Select::having使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Magento\Framework\DB\Select
的用法示例。
在下文中一共展示了Select::having方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: build
/**
* {@inheritdoc}
*/
public function build(ScoreBuilder $scoreBuilder, Select $select, RequestQueryInterface $query, $conditionType)
{
/** @var $query \Magento\Framework\Search\Request\Query\Match */
$fieldList = [];
foreach ($query->getMatches() as $match) {
$fieldList[] = $match['field'];
}
$resolvedFieldList = $this->resolver->resolve($fieldList);
$fieldIds = [];
$columns = [];
foreach ($resolvedFieldList as $field) {
if ($field->getType() === FieldInterface::TYPE_FULLTEXT && $field->getAttributeId()) {
$fieldIds[] = $field->getAttributeId();
}
$column = $field->getColumn();
$columns[$column] = $column;
}
$exactMatchQuery = $this->getExactMatchQuery($columns, $query->getValue());
$scoreQuery = $this->getScoreQuery($columns, $query->getValue());
$scoreBuilder->addCondition(new \Zend_Db_Expr($scoreQuery), true);
if ($query->getValue() != $this->queryHelper->singularize($query->getValue())) {
$scoreQuery = $this->getScoreQuery($columns, $this->queryHelper->singularize($query->getValue()));
$scoreBuilder->addCondition(new \Zend_Db_Expr($scoreQuery), true);
}
if ($fieldIds) {
$select->where(sprintf('search_index.attribute_id IN (%s)', implode(',', $fieldIds)));
}
$select->having(new \Zend_Db_Expr($exactMatchQuery))->group('entity_id');
return $select;
}