我正在使用带有教义的symfony 1.4,当搜索词包含该点时我遇到此问题(例如:“V-5.26 3.15”):
无法找到课程“%V-5
这是我的代码
$products = Doctrine_Query::create()
->select('t.name,p.price,p.id,pi.immagine,p.offer,p.special,t.description')
->from('Products p')
->leftJoin('p.ProductsImages pi')
->leftJoin('p.Translation t WITH t.lang = ?', $this->getUser()->getAttribute('current_lang'))
->where('p.active = ?', '1')
->andWhere('pi.ordine = ?', 0);
$term = explode(' ', $request['term']);
$ricerca = '';
for($i=0; $i < count($term); $i++) {
$products->andWhere(' t.name LIKE "%'. $term[$i] .'%" OR t.description LIKE "%'. $term[$i] .'%" ');
}
$products->orderBy('t.name');
$this->pager = new sfDoctrinePager('Products', sfConfig::get('app_max_page_products'));
$this->pager->setQuery($products);
$this->pager->setPage($request->getParameter('page', 1));
$this->pager->init();
$term = explode(' ', $request['term']);
$ricerca = '';
for($i=0; $i < count($term); $i++) {
$products->andWhere(' t.name LIKE "%'. $term[$i] .'%" OR t.description LIKE "%'. $term[$i] .'%" ');
}
$products->orderBy('t.name');
$this->pager = new sfDoctrinePager('Products', sfConfig::get('app_max_page_products'));
$this->pager->setQuery($products);
$this->pager->setPage($request->getParameter('page', 1));
$this->pager->init();
请问任何解决方案?非常感谢。
答案 0 :(得分:0)
构造查询时应使用参数:
$products->andWhere(
't.name LIKE ? OR t.description LIKE ?',
array('%'.$term[$i].'%', '%'.$term[$i].'%')
);