Здравствуйте. Пытаюсь перейти с микрофреймворков на полноценные, а именно Yii2 или Laravel, но с моей точки зрения, они оба почти одинаково непонятные. В Yii2 уже есть базовые таблицы с базовыми полями для регистрации и авторизации и прочее прочее. Я же хочу использовать свои поля и свою логику аутентификации. Для начала хотя бы поля. Всё по инструкции.
Мой контроллер:
namespace app\controllers;
use Yii;
use yii\web\Controller;
use app\models\User;
class TestController extends Controller
{
public function actionRegister() {
$user=User::findOne(["id"=>1]);
Yii:$app->user->login($user);
if(Yii::$app->user->isGuest) {
return "Вы гость";
}
}
}
И собственно модель User (ActiveRecord) реализующая интерфейс:
namespace app\models;
use yii\db\ActiveRecord;
use yii\web\IdentityInterface;
class User extends ActiveRecord implements IdentityInterface
{
public static function tableName()
{
return 'users';
}
public static function findIdentity($id)
{
return static::findOne($id);
}
public static function findIdentityByAccessToken($token, $type = null)
{
// return 1;
}
public function getId()
{
return $this->id;
}
public function getAuthKey()
{
// return $this->authKey;
}
public function validateAuthKey($authKey)
{
//return $this->authKey === $authKey;
}
}
Проблема заключается в том, на строчку с
Yii:$app->user->login($user);
в контроллере, Yii выдает "Call to a member function login() on null". Как я понял он таки не выдергивает пользователя.
Что я делаю не так?
Added: бьюсь в истерике, буквально скопиррваный код с advanced шаблона и подправленый под мою таблицу не работает. Он авторизует, но все поля обьекта пользователя null. Может я как-то базу создаю не так?