Что-то какие-то замудреные ответы вокруг да около. Ничего конкретного...
Многие уже написали: "Entity" это сущность. Но никто так и не объяснил для чего... попробую вставить свои 5 копеек. Ну и мой ответ не будет привязан к Yii. как уже сказали там используется другой подход.
Как уже сказали Entity представляет сущность, например пользователь.
Итак, Entity у нас это пользователь. Мы знаем что у пользователя в любом случае есть идентификатор, имя, фамилия. Думаю, для примера хватит.
Так вот.
Когда вы достали данные из базы в некой модели пользователей, что вы сможете сделать? Ну допустим положить их в массив и в нужный момент вывести как вам угодно, но... по мере роста проекта, пользователь должен будет выводиться в разных частях веб приложения. В одном месте достаточно имени, в другом месте достаточно фамилии, а где-то нужно фамилия и имя. Допустим в БД вы будете хранить имя и фамилию в отдельных столбцах.
И смотрите что получается. Если у вас есть комментарии и там нужно вывести "имя фамилия", так же есть страница подписчики. Там тоже нужно вывести "имя фамилия". И там и там выводится один пользователь, но внешний вид вывода будет разным. И если пойти по способу "данные в массиве". То для каждого вывода вам нужно будет делать что-то подобное:
echo $user['name'].' '.$user['last_name'];
А таких выводов может быть десятки.
Но если вы вместо массива будете использовать объект (класс)
user
То внутри вам достаточно создать метод:
public function getFullName(){
return $this->name.' '.$this->last_name
}
Теперь во всем приложении и в любом файле вы будете знать, что у вас есть метод, который выведет имя и фамилию. Поэтому этот объект вы можете передавать куда угодно. Например в любое из десятков представлений (views) которые будут уверены в существовании одного метода.
И когда вы решите поменять местами и писать "фамилия имя" во всем приложении. Вам достаточно будет поменять это в методе getFullName()