Установить глобальную переменную из функции контроллера - PullRequest
1 голос
/ 14 февраля 2020

Я работаю над проектом CI, где я застрял где-то. Я пытаюсь установить значение глобальной переменной из функции и получить доступ к этому значению из другой функции. Вот мой код ..

class Example extends CI_Controller {

    public $gData = "";

    public function userinfo() {
        //Here i fetch user infomration from database table 
        $userName = "userName";
        $this->gData = $userName;
    }

    public function getuserinfo() {
        echo $this->gData;
    }

}

userinfo - это моя фактическая страница, которая открывается в браузере и извлекает данные пользователя из пользовательской таблицы. На мой взгляд, у меня есть кнопка при нажатии кнопки, которую я звоню ajax, которая вызывает метод контроллера getuserinfo, предполагается, что нужно вернуть имя пользователя, которое я установил в методе userinfo, но unfortunetly не работает. Любая воля plz укажет мне, где я делаю ошибку. (Мне не разрешено использовать сессию)

Ответы [ 2 ]

0 голосов
/ 14 февраля 2020

Вы можете определить переменную в конструкторе как указано Amite sh или вы можете изменить свой метод userinfo() так, чтобы он просто возвращал данные, чтобы метод getuserinfo() мог их использовать. Например:

class Example extends CI_Controller {

    public function userinfo() {
        //Here i fetch user infomration from database table 
        $userName = "userName";
        return $userName;
    }

    public function getuserinfo() {
        // get the data
        $username = $this->userinfo();
        echo $username;
    }

}

При вызове $this->userinfo() вы запустите этот метод, и возвращаемое значение будет доступно для любой функции (в том же контроллере), которая делает вызов

0 голосов
/ 14 февраля 2020

попробуйте это: Сначала вы должны задать имя пользователя в глобальной переменной:

class Example extends CI_Controller {

    public $gData = "";

    public function userinfo() {
        //Here i fetch user infomration from database table 
        $userName = "userName";
        $this->gData = $userName;
    }

    public function getuserinfo() {
       $this->userinfo();
        echo $this->gData;
    }

}

ИЛИ вы можете использовать конструктор: Я не знаком с CI

class Example extends CI_Controller {

        public $gData = "";

         Public function __construct() { 
         parent::__construct(); 
         $this->userinfo();
      } 

        public function userinfo() {
            //Here i fetch user infomration from database table 
            $userName = "userName";
            $this->gData = $userName;
        }

        public function getuserinfo() {

            echo $this->gData;
        }

    }

Отредактированный ответ: На основе комментариев решение может быть таким, если вы не хотите использовать сессию:

1. Создайте представление, используя Запрос userinfo.

2. Создайте модель, используя это представление, и напишите свою логику c. Я думаю, что это может помочь вам. Это не замедлит ваш результат.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...