如何使用类似的查询并仅限制为第一个字符,例如,我下面的代码可以工作,但是它对所有字符都这样做,例如,如果一个项目被称为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
编辑:我的错误,由于拉蒂科夫·德米特里的评论而更新。