登录生产服务器不起作用

时间:2014-12-28 23:02:30

标签: php yii2

在本地服务器上它可以工作,但是当我尝试在生产服务器上登录时,我收到以下消息:

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

本地和生产服务器上的文件是相同的。

2 个答案:

答案 0 :(得分:7)

由于用户数据库模型中的id字段不是主键,因此发生这种情况。只需将PK约束添加到从数据库归档的user-> id。

来自数据库控制台:

ALTER TABLE `user` ADD PRIMARY KEY(`id`);

或者像phpMyAdmin这样的任何可视化工具都有一个主键添加功能来自"结构"标签。

答案 1 :(得分:1)

来自yii2 / web / User.php的第240行是

$log = "User '$id' logged in from $ip with duration $duration.";

因此,请查看$ id或$ ip或$ duration是否为数组。你在某个地方做错了什么。

你能发布$ _SERVER ['REMOTE_ADDR']是什么?