2013-12-09 5 views
0

У меня есть этот критерий Params массив (я попробовать это, но это не работает):Yii функция критерии PARAMS массив йоту strstr

$dataProvider = new CActiveDataProvider('mydata', array(
     'criteria'=>array(
      'condition' => 'row=:id', 
       'params' => array(**strstr(':id', '.')** => '.com') 
     ), 

мне нужно добавить strstr функцию к params, как я могу это сделать?

спасибо от заранее

+0

Что именно вы хотите сделать? – tinybyte

+0

Я хочу сравнить слово после первой точки (.com) до = '.com' –

ответ

1

Вы должны вызвать функцию strstr в нужном месте в первую очередь:

'params' => array(':id' => strstr('.com', '.')) 

Также убедитесь, что вы на самом деле хотите strstr как:

Возвращает часть начиная с первого игольного конца иглы до конца стога сена.

+0

Я уверен, что хочу использовать «strstr», но я хочу сравнить «: id» с google.com, поэтому я хочу прочитайте «: id» (скажем: google.ru) после do. так что это будет выглядеть как .ru => .com –

+0

Критерии/Params не работают так. Парамс содержит 'array (key => value)' где ключ представляет условие placeholder в 'condition'. Вам нужно изменить условие, чтобы отразить то, что вы действительно хотите сравнить: ''condition' =>" '.com' =: id ",' –

0

Я не совсем понимаю, что вы хотите сделать, но параметры должны использоваться непосредственно в качестве значений для запросов.

Вы можете выполнить синтаксический анализ/работу с параметром перед его отправкой по критериям или вы также можете попробовать изменить свой запрос на работу по мере необходимости. Если вы можете предоставить мне более подробный пример, возможно, я смогу дать вам другое мнение.

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