Yii2: В чем отличия между расширенями класса User?
Доброго времени друзья.
Ну и как обычно ламерский вопрос на потеху публике.
Итак:
Начал изучать Yii2, в частности регистрацию на сайте.
У меня после установки фреймворка начало класса User такое: class User extends \yii\base\BaseObject implements \yii\web\IdentityInterface
У учителя вот такое начало: class User extends ActiveRecord implements IdentityInterface
В первом варианте scenario не определяется PhpStorm'ом и появляется ошибка вида:
Unknown Property – yii\base\UnknownPropertyException
Setting unknown property: app\models\User::scenario
Твой класс работает с базовым объектом, а класс учителя с базой данных
В basic приложении сразу создается такой класс как у тебя, а такой как у твоего учителя по умолчанию присутствует в advanced приложении в common/models.
scenario - свойство класса yii\base\Model, от которого в свою очередь наследуются ActiveRecord. В базовом шаблоне предполагается, что данные по юзерам хранятся в свойстве users модели User, что конечно не удобно, если юзеры могут как-либо добавляться (через админку или регистрацию на сайте). Поэтому практически всегда наследуют от ActiveRecord, неважно basic или advanced.