Yii2 如何仅对第一个字符使用类似查询


Yii2 how can I use a like query for first character only

如何使用类似的查询并仅限制为第一个字符,例如,我下面的代码可以工作,但是它对所有字符都这样做,例如,如果一个项目被称为end,它将出现在e,n和d中,而不仅仅是e开始字符/字母。

当前查询/代码

    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,
    ]);
} 

你应该简单地尝试:

$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

编辑:我的错误,由于拉蒂科夫·德米特里的评论而更新。