【问题标题】:Search a record using a key in Yii1在 Yii1 中使用键搜索记录
【发布时间】:2020-06-06 18:43:18
【问题描述】:

我想在用户使用键搜索时返回匹配记录,我正在构建一个在线购物网站,因此如果用户搜索 xyz,那么它应该返回数据库中特定列中包含 xyz 的所有记录。现在,当且仅当在列和当前代码中找到完全匹配时,它才会返回

if(isset($_GET['search']))
{
    $search=$_GET['search'];
    $criteria=new CDbCriteria;
    $criteria->compare('name',$search,true);
    $items=Item::model()->findAll($criteria);
}

现在它将返回与 xyz=name 匹配的记录(名称),但我的要求是如果用户搜索 xy,那么它也应该返回 xyz(名称)

【问题讨论】:

    标签: search model-view-controller criteria yii1.x


    【解决方案1】:

    有一个方法\CDbCriteria::addSearchCondition(),这是它的签名:

    public static addSearchCondition(string $column, string $keyword, boolean $escape=true, string $operator='AND', string $like='LIKE')
    

    在您的示例中,您必须像这样使用它:

    if(isset($_GET['search']))
    {
        $search=$_GET['search'];
        $criteria=new CDbCriteria;
        $criteria->addSearchCondition('name', $search);
        $items=Item::model()->findAll($criteria);
    }
    

    您可以在官方 Yii API 中找到更多信息: https://www.yiiframework.com/doc/api/1.1/CDbCriteria#addSearchCondition-detail

    【讨论】:

      猜你喜欢
      • 2011-01-07
      • 2023-03-31
      • 1970-01-01
      • 2021-08-26
      • 1970-01-01
      • 1970-01-01
      • 2023-03-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多