繁体   English   中英

如何在Yii中使用CDBCRITERIA比较字符串?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM