@theEternalStudent

После переноса на хостинг, при попытке залогиниться вылетает ошибка, что может быть не так?

После переноса сайта на хостинг, при попытке залогиниться стала выдаваться вот такая ошибка:
Declaration of User::updateCounters() should be compatible with CActiveRecord::updateCounters($counters, $condition = '', $params = Array)

В чем может быть причина?

LoginController:
public function actionIndex()
    {
        if(!user()->isGuest) {
            $this->redirect(url('table/index'));
        }

        $this->layout = '//layouts/login';
        $form = new LoginForm();
        if(isset($_POST['LoginForm'])) {
            $form->attributes = $_POST['LoginForm'];
            if ($form->validate()) {
                if($form->authenticateUser()) {
                    $this->redirect(url('table/index'));
                }
            }
        }

        $this->render('index', array(
            'loginForm' => $form
        ));
    }


модель LoginForm:

public $email;
    public $password;

    public function rules()
    {
        return array(
            array('email, password', 'required')
        );
    }

    public function attributeLabels()
    {
        return array(
            'email' => 'E-mail',
            'password' => 'Пароль'
        );
    }

    public function authenticateUser()
    {
        $identitiy = new UserIdentity($this->email, $this->password);
        if (!$id = $identitiy->authenticate()) {
            $this->addError('password', 'Неверный логин или пароль.');
            return false;
        } else {
            user()->login($identitiy);
            user()->id = $id;

            //добавляем админскую сессию в соотв. таблицу
            db()->createCommand()->insert('admin_sessions', array('sessionID'=>session_id()));

            return true;
        }
    }
  • Вопрос задан
  • 93 просмотра
Решения вопроса 1
@heahoh
Full stackoverflow developer
Сигнатура метода updateCounters модели User не соответствует родительской сигнатуре, описанной в CActiveRecord.
Вам необходимо привести её в (сигнатуру) в соответствие с родительской.
Окружение локальной и продакшн машин различается (возможно: разные версии php или разные настройки вывода ошибок (E_ALL ^ E_STRICT)), поэтому локально ошибка не отображается (хотя, скорее всего, она тоже есть). Данная ошибка соответствует категории E_STRICT btw
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы