[英]how to compare strings in using CDBCRITERIA in Yii?
我正在使用Yii框架,我想进行一些搜索过滤,但是在某些情况下我得到了错误的结果,如下所示:
我有2个复选框:加拿大和美国,如果我选择加拿大,我将仅获得与加拿大有关的所有结果,而如果我选择美国,我将获得db中的所有结果,无论其与美国是否相关,并且此错误是绝对会发生的,因为美国字符串分为两部分,因此需要用引号引起来。 这是我的代码:
视图页面:
echo '<div class="checkbox"><label>'.
CHtml::checkBox($m2->tag, false, array('value'=>"$m2->tag")).$m2->tag
.'</label></div>';
控制器:
$c = new CDbCriteria();
$c->order = "idJob DESC";
$model = Jobs::model()->findAll($c);
$model2 = Tags::model()->findAll();
$lcr = "";
$tag="";
foreach($model2 as $m2){
if(isset($_POST[$m2->tag])){
$tag = $_POST[$m2->tag];
if($m2->category=='Location')
$lcr[]= $tag;
}
}
if($lcr!="")
$c->addInCondition('location', $lcr, 'AND');
$model = Jobs::model()->findAll($c);
好的,这听起来像我找到了解决此问题的方法,并且它可以正常工作,这是解决方法:
在控制器中:
foreach($model2 as $m2){
if (strpos($m2->tag, ' ') !== FALSE)
$m2->tag = str_replace(" ","_",$m2->tag);
if(isset($_POST["$m2->tag"])){
....
因此,如您在代码中所看到的,如果tag
包含任何空格,它将被_
替换,并且在HTML中,id属性将自动将_
替换为空白,因此现在可以将它们匹配。
请在您的代码上检查以下代码,它将对您有用
$criteria->addSearchCondition('location', 'YOUR SEARCH STRING', false);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.