Yii2如何才能对第一个字符使用类似的查询

时间:2015-03-07 09:56:19

标签: php mysql yii2

我如何使用类似的查询并限制第一个字符,例如我的下面的代码可以工作,但它适用于所有字符,例如,如果一个项目被调用,它将出现在e,n& d而不仅仅是起始字符/字母。

当前查询/代码

    public function actionAlphabet($id)
{
    $this->layout = 'directory';

    $query = Directory::find()
    ->where(['LIKE', 'name', $id]);

    $dataProvider = new ActiveDataProvider([
        'query' => $query
    ]);

    return $this->render('index', [
        'dataProvider' => $dataProvider,
    ]);
} 

1 个答案:

答案 0 :(得分:14)

你应该试试:

$query = Directory::find()
    ->where(['LIKE', 'name', $id.'%', false]);
  

有时,您可能希望自己将百分比字符添加到匹配值中,您可以提供第三个操作数false。例如,['like', 'name', '%tester', false]将生成名称LIKE '%tester'

了解详情:http://www.yiiframework.com/doc-2.0/yii-db-queryinterface.html#where()-detail

编辑:我的错误,感谢 Latikov Dmitry 评论。