2014-01-19 5 views
1

전체 속성 대신 전체 문자열이 아닌 부분 문자열로 지정된 문자열이 있는지 확인할 수 있습니다.Yii findAllByAttributes에 대해 정규 표현식을 사용하는 경우

$posts = Post::model()->findAllByAttributes(array("tag"=>"bad")); 

는 태그 파괴가있는 게시물에있어 가정, 나는 또한 해당 게시물을 찾거나 사실과 같은 캐릭터 라인 태그에 "나쁜"하위 문자열이있는 포스트로 할 수 있도록하려면 나쁜 정규 표현식에서.

$criteria = new CDbCriteria(); 
$criteria->compare('tag','bad',true,'AND',true); 
$posts = Post::model()->findAll($criteria); 

이 어떻게 작동하는지에 대한 통찰력 compare을 읽기 -

답변

3

만들기 사용을 다음과 같이 시도 할 수 있습니다, 아래의 코드를 사용합니다.

1

당신은 YII에서의 awesomeness의

$match = "bad"; 

$match = addcslashes($match, '%_'); // escape LIKE's special characters 
$q = new CDbCriteria(array(
    'condition' => "tag LIKE :match",   // no quotes around :match 
    'params' => array(':match' => "%$match%") // Aha! Wildcards go here 
)); 

$Post= Post::model()->findAll($q); 
+0

작동하지 않습니다. –

관련 문제