本文整理汇总了PHP中Thelia\Model\ProductQuery::addJoinCondition方法的典型用法代码示例。如果您正苦于以下问题:PHP ProductQuery::addJoinCondition方法的具体用法?PHP ProductQuery::addJoinCondition怎么用?PHP ProductQuery::addJoinCondition使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Thelia\Model\ProductQuery
的用法示例。
在下文中一共展示了ProductQuery::addJoinCondition方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: manageFeatureValue
/**
* @param ProductQuery $search
* @param string[] $feature_values
*/
protected function manageFeatureValue(&$search, $feature_values)
{
if (null !== $feature_values) {
foreach ($feature_values as $feature => $feature_choice) {
foreach ($feature_choice['values'] as $feature_value) {
$featureAlias = 'fv_' . $feature;
if ($feature_value != '*') {
$featureAlias .= '_' . $feature_value;
}
$search->joinFeatureProduct($featureAlias, Criteria::LEFT_JOIN)->addJoinCondition($featureAlias, "`{$featureAlias}`.FEATURE_ID = ?", $feature, null, \PDO::PARAM_INT);
if ($feature_value != '*') {
$search->addJoinCondition($featureAlias, "`{$featureAlias}`.FREE_TEXT_VALUE = ?", $feature_value, null, \PDO::PARAM_STR);
}
}
/* format for mysql */
$sqlWhereString = $feature_choice['expression'];
if ($sqlWhereString == '*') {
$sqlWhereString = 'NOT ISNULL(`fv_' . $feature . '`.ID)';
} else {
$sqlWhereString = preg_replace('#([a-zA-Z0-9_\\-]+)#', 'NOT ISNULL(`fv_' . $feature . '_' . '\\1`.ID)', $sqlWhereString);
$sqlWhereString = str_replace('&', ' AND ', $sqlWhereString);
$sqlWhereString = str_replace('|', ' OR ', $sqlWhereString);
}
$search->where("(" . $sqlWhereString . ")");
}
}
}