Я новичок в CI, и я пытаюсь получить доступ к закрытой переменной через приложение, но я устанавливаю значение для переменной, в следующий раз, когда я пытаюсь получить доступ к функции (которую я вызвал из формы отправки на мой взгляд), закрытая переменная, которую я установил, пуста. Может кто-нибудь помочь? Спасибо
class Example extends CI_Controller{
private $_variable;
public function __construct()
{
parent::__construct();
}
public function index()
{
//value from database
$this->_variable = 'somevalue';
}
//calling this function from a view
public function some_method()
{
// code...
// $this->_variable returning without any value
}
}
Ваши представления не должны напрямую пытаться получить доступ к методам вашего контроллера, вместо этого вы должны отправлять их при вызове представления во втором аргументе:
Смотрите документы Codeigniter, связанные с этим (Я предполагаю, что вы испанец, потому что вы используете «переменную»).
$args = Array( "var1" => "variable", "var2" => "variable" );
$this->load->view("some_url", $args);
Тогда $ var1 и $ var2 будут доступны на ваш взгляд.
Ваш some_method
это на самом деле не вид. В лучшем случае это может быть функция примера контроллера, которая будет вызывать из представления. Ваш index()
Функция фактически присваивает значение в вашем личном $_variable
Таким образом, чтобы передать значение на ваш взгляд, вы должны сначала вызвать index()
функция для присвоения переменной и значение будет доступно для вашего some_method()
, Ниже приведен пример того, как вы передадите переменную в ваше представление.
public function some_method()
{
return $this->_variable;
}
По вашему мнению, для доступа к переменной:
echo $this->some_method();
Я считаю, что это поможет вам показать вашу личную переменную в вашем представлении.