Массив параметров критериев Yii с функцией strstr

У меня есть этот массив параметров критериев (я пытаюсь это сделать, но он не работает):

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

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

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


person Yaakov Swissa    schedule 09.12.2013    source источник
comment
что именно вы хотите сделать?   -  person Developerium    schedule 09.12.2013
comment
я хочу сравнить слово после первой точки (.com) с = '.com'   -  person Yaakov Swissa    schedule 09.12.2013


Ответы (2)


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

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

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

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

person Nikolas Grottendieck    schedule 09.12.2013
comment
я уверен, что хочу использовать strstr, но я хочу сравнить :id с google.com, поэтому я хочу прочитать :id (скажем, google.ru) после выполнения. так что будет как .ru =› .com - person Yaakov Swissa; 09.12.2013
comment
Criteria/Params так не работает. Params содержит array(key => value), где ключ представляет заполнитель условия в condition. Вам нужно изменить условие, чтобы отразить то, что вы действительно хотите сравнить: 'condition' => "'.com'=:id", - person Nikolas Grottendieck; 09.12.2013

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

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

person Nico Savini    schedule 09.12.2013