Как в YII2 сделать фильтрацию из mssql чтобы поля не повторялись?

В Yii2, чтобы выполнить фильтрацию в MS SQL и получить уникальные значения, можно использовать метод distinct() в ActiveQuery.

Прежде всего, убедитесь, что установлено соединение с базой данных MS SQL в конфигурационном файле config/db.php. Вам потребуется сконфигурировать компонент базы данных db в файле конфигурации Yii2.

После этого, вам необходимо создать модель соответствующую таблице в базе данных. Допустим, у вас есть модель Post для таблицы post. Затем, создайте экземпляр ActiveQuery и примените методы фильтрации и уникальности.

Пример кода:

use appmodelsPost;
use yiidbQuery;

$query = (new Query())
    ->select('column1, column2') // Замените column1, column2 на необходимые вам столбцы
    ->from('post')
    ->where(['condition' => 'value']) // Добавьте необходимые условия фильтрации
    ->distinct(); // Применяем метод distinct()

$result = $query->all(); // Получаем уникальные значения

// Можно использовать модель вместо Query
// $query = Post::find()
//    ->select('column1, column2')
//    ->where(['condition' => 'value'])
//    ->distinct();

// Дальше можно обработать результат
foreach ($result as $row) {
    // Обработка данных
    echo $row['column1'] . ' - ' . $row['column2'] . '<br>';
}

В данном примере мы создали экземпляр класса Query, указали требуемые столбцы, таблицу и условия фильтрации. Затем применили метод distinct() для получения уникальных значений. Финальный результат сохраняется в переменной $result в виде массива с результирующими строками. Далее вы можете обработать результаты в цикле foreach или использовать их по своему усмотрению.

Обратите внимание, что вместо Query вы также можете использовать модель ActiveRecord вместе с методами find() и select(). Это может быть более удобным и более организованным способом работы с данными.