У меня есть таблица с именем 'projects', в которой есть столбец с именем project_title. Ниже приведен код sql.Кстати, я сделал все это в пирогеЯ могу показать вам мой код для торта, а также SQL-запрос, сгенерированный ниже.
function search()
{
if (!empty($this->data)):
$keywords = Array();
$keywords['categories'] = array();
$categories = $this->data['Project']['ProjectCategory'];
if($categories):
foreach($categories as $category):
$keywords['categories'][] = $category;
endforeach;
endif;
$queries = str_replace(",", "",$this->data['Project']['query']);
$keywords['project_title'] = explode(" ", $queries);
$nq = '';
foreach($keywords as $key =>$value)
{
if($key == 'project_title'):
foreach($value as $q):
$nq[] = array('Project.project_title LIKE'=>"%$q%");
endforeach;
elseif($key == 'categories'):
foreach($value as $q):
$nq[] = array('Category.id'=>"$q");
endforeach;
endif;
}
$final = array("OR"=>$nq);
$joins = '';//array('table'=>'users','alias'=>'User','type' =>
//'LEFT','conditions'=>'User.id = Project.user_id');
$options = array('conditions'=>$final);
$projects = $this->Project->ProjectCategory->find('all',$options);
$this->set('projects',$projects);
$this->paginate();
endif;
}
Этот запрос сгенерирован:
SELECT * FROM `project_categories` AS `ProjectCategory`
LEFT JOIN `projects` AS `Project`
ON (`ProjectCategory`.`project_id` = `Project`.`id`)
LEFT JOIN `categories` AS `Category`
ON (`ProjectCategory`.`category_id` = `Category`.`id`)
WHERE `Project`.`project_title` LIKE '%test%'
, как вы видите, я присоединяюсь к двум другим таблицам.Но это находится здесь
WHERE `Project`.`project_title` LIKE '%test%'
В проектах у меня есть 3 записи, у которых есть слово test под названием проекта.Я перечислю их ниже
Ryans Test Project
Ryans Test Project 2
Test project #2
Money Aint A Thang
Я не получаю ошибок, я просто получаю нулевой результат.
Что не так?