У меня возникла проблема при настройке расширения Private Message. Вот конфигурация защищаемой/конфигурации/main.phpYii Private Message Extension «Пользователь метода :: getFullName не определен»
'message'=>array(
'userModel'=>'User',
'getNameMethod' => 'getFullName',
'getSuggestMethod' => 'getSuggest',
'receiverRelation'=> array(
CActiveRecord::BELONGS_TO, 'User', 'on'=>'User.id = receiver_id'
),
'senderRelation'=> array(
CActiveRecord::BELONGS_TO, 'User', 'on'=>'User.id = sender.id'
),
),
Это код защищен/модули/сообщение/MessageModule.php
<?php
class MessageModule extends CWebModule
{
public $defaultController = 'inbox';
public $userModel = 'User';
public $userModelRelation = null;
public $getNameMethod;
public $getSuggestMethod;
public $senderRelation;
public $receiverRelation;
public $dateFormat = 'Y-m-d H:i:s';
public $inboxUrl = array("/message/inbox");
public $viewPath = '/message/default';
public function init()
{
if (!class_exists($this->userModel)) {
throw new Exception(MessageModule::t("Class {userModel} not defined", array('{userModel}' => $this->userModel)));
}
foreach (array('getNameMethod', 'getSuggestMethod') as $methodName) {
if (!$this->$methodName) {
throw new Exception(MessageModule::t("Property MessageModule::{methodName} not defined", array('{methodName}' => $methodName)));
}
if (!method_exists($this->userModel, $this->$methodName)) {
throw new Exception(MessageModule::t("Method {userModel}::{methodName} not defined", array('{userModel}' => $this->userModel, '{methodName}' => $this->$methodName)));
}
}
// this method is called when the module is being created
// you may place code here to customize the module or the application
// import the module-level models and components
$this->setImport(array(
'message.models.*',
'message.components.*',
));
}
public function beforeControllerAction($controller, $action)
{
if (Yii::app()->user->isGuest) {
if (Yii::app()->user->loginUrl) {
$controller->redirect($controller->createUrl(reset(Yii::app()->user->loginUrl)));
} else {
$controller->redirect($controller->createUrl('/'));
}
} else if (parent::beforeControllerAction($controller, $action)) {
// this method is called before any module controller action is performed
// you may place customized code here
return true;
} else {
return false;
}
}
public static function t($str='',$params=array(),$dic='message') {
return Yii::t("MessageModule.".$dic, $str, $params);
}
public function getCountUnreadedMessages($userId) {
return Message::model()->getCountUnreaded($userId);
}
}
Однако, когда я попробуйте запустить его, я нашел проблему на «Пользователь метода :: getFullName не определен»
Пожалуйста, помогите ... Благодаря ...
Возможно, некоторые из файлов не включены в автоматическую загрузку, или пользовательский класс не является классом пользователя, который, по вашему мнению, является. – tinybyte
Добавьте метод 'getFullName' к вашей модели' User'. –