$this->params returns null in cakephp model

2019-07-16 01:59发布

问题:

I decided to add some extra data about the controllers and actions in some model beforeSave as follows:

//in the model
public function beforeSave() {
        $this->data[$this->alias]['path'] = 'blah blan';
        debug($this->params);
        die(); //for debugging!
}

The printout of debug returns null! The model I uses is the Comment model of the comments plugin. I need to access params to get the current controller, actions and some url parameters.

Indeed, I plan to change the way that comments plugin lists the comments from model based to be path based to solve the issue of need comments for more than one action depend on the same model.

回答1:

Finally I found the solution: It is in Router object method getParams();

//in the model
public function beforeSave() {
        $this->data[$this->alias]['path'] = 'blah blan';
        debug(Router::getParams());
        die(); //for debugging!
}

it prints out something like:

array(
    'plugin' => null,
    'controller' => 'qurans',
    'action' => 'view',
    'named' => array(
        'comment' => '0'
    ),
    'pass' => array(
        (int) 0 => '8'
    )
)