Как в Yii2 в gridView отображать только последние записи?

В Yii2 фреймворке для отображения данных в виде таблицы используется компонент GridView. Для отображения только последних записей в GridView, можно использовать следующий подход.

Первым шагом необходимо получить данные, только последние записи, из базы данных. В Yii2 для работы с базой данных используется ActiveRecord. Создадим модель, связанную с таблицей в базе данных, и с помощью этой модели получим только последние записи:

namespace appmodels;

use yiidbActiveRecord;

class MyModel extends ActiveRecord
{
    // ...

    public static function findLast($limit)
    {
        return self::find()
            ->orderBy(['id' => SORT_DESC])
            ->limit($limit)
            ->all();
    }
}

В методе findLast($limit) мы сортируем записи по убыванию поля id (предполагая, что поле id является уникальным и все записи имеют значения), и ограничиваем количество записей до указанного limit.

Далее создаем GridView и передаем ему данные из базы данных:

use yiigridGridView;
use appmodelsMyModel;

$dataProvider = new yiidataArrayDataProvider([
    'allModels' => MyModel::findLast(10),
]);

echo GridView::widget([
    'dataProvider' => $dataProvider,
    // настройки других свойств GridView
]);

Мы создаем ArrayDataProvider и передаем ему массив моделей, полученных из метода findLast(10). Затем этот провайдер данных передается в свойство dataProvider виджета GridView.

Таким образом, мы получаем таблицу, содержащую только последние 10 записей из базы данных.

Конечно, код может быть адаптирован под ваши конкретные требования, но приведенный пример демонстрирует основной подход к решению данной задачи при использовании Yii2.