Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

cakephp accessing view attributes/variables from within a helper

is there a reasonable way to access the view attribute "passedArgs" (or any similar)

/* view */
$this->passedArgs

from within a Helper?

I'd be happy to customize the _construct() of the helper or to customize the app_helper... but I don't want to have to pass $this->passedArgs into the helper on every view or usage.

like image 524
zeroasterisk Avatar asked Aug 19 '10 19:08

zeroasterisk


3 Answers

Cake 3:

$this->getView()->get('my_var');
like image 111
celsowm Avatar answered Oct 16 '22 06:10

celsowm


Cake 2.x and 3.x

You can look up your variables in the _View object:

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

Cake 1.x

If you grab the current view object from within the helper you should be able to get to its passedArgs.

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

Cake 1.2.x

If you grab the current view object from within the helper you should be able to get to its viewVars.

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

Enjoy, Nick

like image 23
Nick Avatar answered Oct 16 '22 06:10

Nick


Have you tried just setting the view's value from the AppController?

class AppController extends Controller {
 function beforeFilter() {
  // other stuff
  $this->set( 'passed_args', $this->params['pass'] );
 }
}
like image 1
Travis Leleu Avatar answered Oct 16 '22 06:10

Travis Leleu