CakePHP обращается к атрибутам / переменным вида из помощника - PullRequest
11 голосов
/ 19 августа 2010

Есть ли разумный способ получить доступ к атрибуту представления «sentArgs» (или к любому подобному)

/* view */
$this->passedArgs

из помощника?

Я был бы рад настроить _construct () помощника или настроить app_helper ... но я не хочу передавать $this->passedArgs в помощник при каждом просмотре или использовании.

Ответы [ 3 ]

29 голосов
/ 20 августа 2010

Cake 2.x и 3.x

Вы можете искать переменные в объекте _View:

$this->_View->viewVars['foo'];

Cake 1.x

Если вы возьмете текущий объект просмотра из помощника, вы сможете добраться до его passArgs.

class SomeHelper extends AppHelper {
  function __construct($settings = array()){
    $this->passedArgs = ClassRegistry::getObject('view')->passedArgs;
  }
}

Cake 1.2.x

Если вы возьмете текущий объект просмотра из помощника, вы сможете добраться до его viewVars.

class SomeHelper extends AppHelper {
  function __construct($settings = array()){
    $this->viewVars = ClassRegistry::getObject('view')->viewVars;
  }
}

Наслаждайтесь, Ник

1 голос
/ 20 августа 2010

Вы пытались просто установить значение представления из AppController?

class AppController extends Controller {
 function beforeFilter() {
  // other stuff
  $this->set( 'passed_args', $this->params['pass'] );
 }
}
0 голосов
/ 27 марта 2019

Торт 3:

$this->getView()->get('my_var');
...