Yii2 - Getting unknown property: yii\\console\\Application::user

GAMITG

Console application does not have Yii->$app->user. So, you need to configure user component in config\console.php.

like as,

config\console.php

 'components' => [
 .........
 ......
        'user' => [
            'class' => 'yii\web\User',
            'identityClass' => 'app\models\User',
            //'enableAutoLogin' => true,
        ],
        'session' => [ // for use session in console application
            'class' => 'yii\web\Session'
        ],
 .......
]

More info about your problem see this : Link

OR

Visit following link : Yii2 isGuest giving exception in console application

Note : There's no session in console application.

Set in \console\config\main.php

return [
    'id' => 'app-console',
    'basePath' => dirname(__DIR__),
    'bootstrap' => ['log'],
    'controllerNamespace' => 'console\controllers',
    'components' => [
        'log' => [
            'targets' => [
                [
                    'class' => 'yii\log\FileTarget',
                    'levels' => ['error', 'warning'],
                ],
            ],
        ],
        'user' => [
            'class' => 'yii\web\User',
            'identityClass' => 'app\models\Credential',// class that implements IdentityInterface
        //'enableAutoLogin' => true,
        ],
    ],
    'params' => $params,
];

now in your \console\controller\AbcController.php add init method

 public function init() {
        parent::init();
        Yii::$app->user->setIdentity(Credential::findOne(['id'=><cronloginid>]));
    }

create a cron login and pass that login id in variable with this config your Blameable Behavior of yii2 will work

As @GAMITG said, you must config user component in config file, but unfortunately, you couldn't access session in console, that's because session is not available in console. Maybe you could solve the problem like this:

$user_id = isset(Yii::$app->user->id) ? Yii::$app->user->id : 0;