src/Eccube/Repository/ProductRepository.php
151行に
// — 空検索チェック —
if (!empty(trim($searchData[‘name’] ?? ”))) {
$qb
->andWhere(‘p.name = :name_exact’)
->setParameter(‘name_exact’, $searchData[‘name’]);
} else {
$qb->andWhere(‘1 = 0’);
}
で完全一致
// — 空検索チェック —
if (!empty(trim($searchData[‘name’] ?? ”))) {
$qb
->andWhere(‘(p.name LIKE :name_head OR p.name = :name_exact)’)
->setParameter(‘name_head’, $searchData[‘name’].’%’)
->setParameter(‘name_exact’, $searchData[‘name’]);
} else {
$qb->andWhere(‘1 = 0’);
}
で完全一致+前方一致
// — 空検索チェック —
if (!empty(trim($searchData[‘name’] ?? ”))) {
$keyword = $searchData[‘name’];
$prefix = mb_substr($keyword, 0, 3);
$qb
->andWhere('(p.name = :name_exact OR SUBSTRING(p.name, 1, 3) = :name_prefix)')
->setParameter('name_exact', $keyword)
->setParameter('name_prefix', $prefix);
} else {
$qb->andWhere(‘1 = 0’);
}
で完全一致+前方3文字一致。