2010-04-25 3 views
17

Как написать метод() ?:LIKE и% Джокер в доктрине в findBy *()

SELECT column_name1, column_name2 FROM table_name 
WHERE column_name3 LIKE '%search_key%'; 

Например, для извлечения нескольких строк из столбца с именем «ColumnName следующий запрос MySQL с помощью Doctrine в findBy * "(ниже), используя Учение:

$users = Doctrine::getTable('User')->findByColumnName('active'); 

echo $users[0]->username; 
echo $users[1]->username; 

Я пробовал:

$search_key = 'some value'; 
$users = Doctrine::getTable('User')->findByColumnName('%$search_key%'); 

    echo $users[0]->username; 
    echo $users[1]->username; 

и я не получил никаких ошибок, но ничего не отображается.

Любая помощь будет действительно оценена. Заранее спасибо.

ответ

21
$users = Doctrine::getTable('User')->createQuery('u') 
    ->where('column_name3 LIKE ?', '%search_key%') 
    ->execute(); 
+0

+1. Приятно, спасибо Coronatus – Anthony

+0

@Coronatus, если у меня есть переменная с именем $ search_key, которая содержит значение чего-то для поиска, как мне заменить% search_key%%% search_key% в моем запросе? – Anthony

+0

ОК спасибо за подсказку! – Anthony

Смежные вопросы