Как получить доступ к переменной из другого controller - CakePHP
Как я могу получить доступ к переменным другого controller
?
, например:
Получил controller X
, и в action index
, создаю переменную (или константу).
controller Y
, я хочу получить доступ к значению переменной (или константы) controller X
.
это можно сделать?
Помня, что каждое действие каждого controller
и в моем приложении, будет иметь переменную, которая должна быть доступной по другой - controller
.
Controller ExemploX
class ExemploXController
{
$dependencias = array("index","listar");
public function index()
{
echo "Index";
}
public function funcaoX()
{
echo "Funcão X";
}
public function listar()
{
echo "listando";
}
}
Controller ExemploY
class ExemploYController
{
$dependencias = array("index","atualizar");
public function index()
{
//pegar o valor da variável $dependencias da controller ExemploXController
$dependency[] = ExemploXController->dependencias;
}
public function funcaoY()
{
echo "Funcão Y";
}
public function atualizar()
{
echo "atualizar";
}
}
2 answers
Получить Доступ к переменным из других контроллеров, совершенно разные, доступ к методам и действия с ними.
controllers
CakePHP только обычных классах, так что, в теории, вы могли бы получить доступ к их атрибуты и методы, так же, как и любой класс, для этого нужно просто загрузить соответствующий файл.
Способ сделать это с помощью App::import
. Посмотрите на пример из собственной документации:
// The same as require('Controller/UsersController.php');
App::import('Controller', 'Users');
// We need to load the class
$Users = new UsersController();
, Как сама документация указывает, что это эквивалент непосредственно использовать метод require
. Кроме того, вы можете создать файл с константами, что вам нужно, и включить эти файлы в свой код, используя, где это необходимо.
Здравствуйте, вы можете создать requestAction
.
С ним вы можете использовать оба в том же контроллер, как и в других контроллерах, но не забудьте создать elemment cache.
Http://book.cakephp.org/2.0/pt/controllers.html#Controller::requestAction