デフォルトの prestashop db クエリを変更する必要があります。私は次のことを試しました:
public function ajaxProcessCheckProductName()
{
if ($this->tabAccess['view'] === '1')
{
$search = Tools::getValue('q'); /* in this variable, i wish subsitute the space with % */
$searchmod = str_replace(" ", "%", $search);
$id_lang = Tools::getValue('id_lang');
$limit = Tools::getValue('limit');
$result = Db::getInstance()->executeS('
SELECT DISTINCT pl.`name`, p.`id_product`, pl.`id_shop`
FROM `'._DB_PREFIX_.'product` p
LEFT JOIN `'._DB_PREFIX_.'product_lang` pl
ON (pl.`id_product` = p.`id_product` AND pl.`id_lang` = '.(int)$id_lang.')
WHERE pl.`name` LIKE "%'.pSQL($searchmod).'%"
GROUP BY pl.`id_product`
LIMIT '.(int)$limit);
die(Tools::jsonEncode($result));
}
}
% のように、変数のスペースを置き換えたいkawasaki racing filter
ので、完全なワイルドカードを使用して db でクエリを実行できます...
例: ユーザー searchkawasaki racing filter
を so に置き換えたいkawasaki%racing%filter
場合、クエリは%kawasaki%racing%filter%
...
アプローチは正しいようですか?現在は機能しません:(
誰かが私を助けることができますか?前もって感謝します!