这是我在控制器中的代码
public function actionInventorycopies()
{
$searchModel = new \app\models\LibBookCopySearch();
$dataProvider = $searchModel->search(Yii::$app->request->queryParams);
//$names = Yii::$app->$db->createCommand('SELECT count(DISTINCT(book_id)) as id FROM lib_book_copy')
//->queryAll();
return $this->render('inventory_copies', [
'searchModel' => $searchModel,
'dataProvider' => $dataProvider
]);
}
这是我的问题,我的book_id有两个记录,两者都是一样的。现在我需要的是只显示一次记录。 book_id和title的记录都应该显示一次。我在yii2做我的项目。那么我应该在哪里控制器。
现在我只需要显示一个书ID和一个标题。我该怎么做 ?请帮忙。
答案 0 :(得分:1)
记录并不完全相同。他们有不同的“Acc No”。
尝试使用yii \ db \ Query:
public function actionInventorycopies()
{
$query = (new \yii\db\Query)->select(['book_id','title'])->distinct()->from('lib_book_copy');
$dataProvider = new ActiveDataProvider([
'query' => $query
]);
return $this->render('inventory_copies', [
'dataProvider' => $dataProvider
]);
}
您应该从网格视图中删除“Acc No”列。