我如何使用类似的查询并限制第一个字符,例如我的下面的代码可以工作,但它适用于所有字符,例如,如果一个项目被调用,它将出现在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,
]);
}
答案 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 评论。