я только что вошел в систему с yii. в моей таблице входа в систему есть столбец «usertype», поэтому, чтобы проверить, работает ли он нормально, я поместил средство записи файлов в код, но оно не получает запись (забудьте о типе пользователя, даже не о строке) каждый раз, когда код выполняет пустой. следующий код
компоненты / UserIdentity
<?php
class UserIdentity extends CUserIdentity
{
private $_id;
public function authenticate()
{$user = Trackaccountusers::model()->findByAttributes(array('username'=>$this->username));
if ($user===null) { // No user found!
$this->errorCode=self::ERROR_USERNAME_INVALID;
} else if ($user->password !== ($this->password) ) { // Invalid password!
$this->errorCode=self::ERROR_PASSWORD_INVALID;
} else { // Okay!
$this->errorCode=self::ERROR_NONE;
// Store the role in a session:
$this->setState('usertype', $user->usertype);
$file = "log.txt";
$write = ("time_s ".$user->usertype."\n");//
file_put_contents($file, $write, FILE_APPEND);
//$this->_id = $user->id;
}
return !$this->errorCode;
}
public function getId()
{
return $this->_id;
}
}
Такая проблема возникает по двум причинам.
chmod -R +x components
Убедитесь, что у вас есть пользователь apache / ngnix в каталоге компонентов. Вы можете установить его, используя chown -R www:data:www:data components
Используйте код ниже в ваших представлениях / контроллерах, чтобы проверить Yii State (UserType) установлен или нет
$usertype = isset(Yii::app()->user->usertype) ? Yii::app()->user->usertype : '';
Замечания: Вам не нужно писать файл для проверки состояния пользователя Yii. Вместо написания файла используйте error_log("usertype = $usertype")
или напечатайте Государство в поле зрения.
Других решений пока нет …