На локальном сервере это работает, но когда я пытаюсь войти на сервер, я получаю это сообщение:
PHP Notice – yii\base\ErrorException Array to string conversion 1. in /var/www/html/vendor/yiisoft/yii2/web/User.php at line 240 2. in /var/www/html/vendor/yiisoft/yii2/web/User.php – yii\base\ErrorHandler::handleError(8, 'Array to string conversion', '/var/www/html/vendor/yiisoft/yii...', 240, ...) at line 240 3. in /var/www/html/common/models/LoginForm.php – yii\web\User::login(common\models\User, 2592000) at line 59 4. in /var/www/html/frontend/controllers/SiteController.php – common\models\LoginForm::login() at line 81
Файлы на локальных и производственных серверах одинаковы.
Это происходит из-за того, что поле id в модели пользовательской базы данных не является первичным ключом. Просто добавьте ограничение PK к user-> id, зарегистрированному из базы данных.
С консоли БД:
ALTER TABLE `user` ADD PRIMARY KEY(`id`);
Или любые визуальные инструменты, такие как phpMyAdmin, содержат функциональность основного ключа с вкладки «Структура».
Строка 240 из yii2 / web / User.php
$log = "User '$id' logged in from $ip with duration $duration.";
Так что посмотрите, $ $ или $ ip или $ duration является массивом. Вы что-то делаете неправильно.
Можете ли вы опубликовать, что такое $ _SERVER ['REMOTE_ADDR']?