0

我为 Joomla 2.5 创建了一个新组件。我有两个功能:

public function getBase(){

    if(JFactory::getUser()->guest) {
        $this->base = 'Гость';
    }
    else { 
        $user =& JFactory::getUser();
        $usr_id = $user->get('id');
        /**/

        $this->base = 'Гуд юзер id '.$usr_id.'';
        /*Get database info*/       
    }   

    return $this->base;
}

public function getGetInfo() {

    $this->getinfo = '11 '.$usr_id.''; 

    return $this->getinfo;
}

请告诉我如何在函数中使用$usr_id = $user->get('id');from 。谢谢您的帮助。getBase()getGetInfo()

4

2 回答 2

0

如果这两个函数在同一个类中,则可以使用类变量

class MyClass
{
    private $user;

    public function getBase()
    {
        // ---
        $user =& JFactory::getUser();

        // Set user class variable
        $this->user = $user;
        // ---
    }

    public function getGetInfo()
    {
        // Now you can use the user
        $user = $this->user;

        // ---
    }
}

如上所述,您可以(尽管您不想因为它的代码重复),只需在getGetInfo()方法中调用相同的代码来获取用户。不要重复你的代码,使用类变量。

于 2013-07-01T10:41:35.743 回答
0

您有两种选择来实现此要求。

一种是像上面一样从用户对象访问它。

 $user =& JFactory::getUser();
 $user_id = $user->id;

或者您必须为类创建一个类变量,例如

public $current_user;

and inside the  public function getBase(){ 

$this->current_user = $user->get('id'); 
}

那么这个$this->current_user变量将在整个类函数中可用

于 2013-07-01T10:42:42.903 回答