2015-02-10 3 views
0

У меня возникла проблема при настройке расширения 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 не определен»

Пожалуйста, помогите ... Благодаря ...

+0

Возможно, некоторые из файлов не включены в автоматическую загрузку, или пользовательский класс не является классом пользователя, который, по вашему мнению, является. – tinybyte

+0

Добавьте метод 'getFullName' к вашей модели' User'. –

ответ

0

Вау ... проблема решена Благодаря PeterM ... Я добавил метод getFullName() и getSuggest ($ д) на пользователя модель ..

public function getFullName() 
{ 
    return $this->username; 
} 

public function getSuggest($q) 
{ 
    $c = new CDbCriteria(); 
    $c->addSearchCondition('username', $q, true); 
    return $this->findAll($c); 
} 

I ошибочно надетые в Пользователь Контролер Спасибо за помощь ...^_^

+0

Я также новичок в Yii. Где находится эта модель пользователя? – Pupil

+0

В модуле Личное сообщение Сэр .. –

 Смежные вопросы

  • Нет связанных вопросов^_^