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

con*_*322 4 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,
    ]);
} 
Run Code Online (Sandbox Code Playgroud)

soj*_*oju 14

你应该尝试:

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

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

阅读更多:http://www.yiiframework.com/doc-2.0/yii-db-queryinterface.html#where()-detail

编辑:我的错误,更新感谢Latikov Dmitry评论.

  • where(['LIKE','name',$ id.'%',false]); (2认同)