Trabajo con cakephp. En todas las páginas, hay esta advertencia:

Advertencia (2): strtolower () espera que el parámetro 1 sea una cadena, matriz dada [CORE / src / Controller / Component / AuthComponent.php, línea 337]

En la línea 337:

protected function _isAllowed(Controller $controller)
{
    $action = strtolower($controller->request->params['action']);
    return in_array($action, array_map('strtolower', $this->allowedActions));
}

¿Cómo resolver este problema?

0
user6476237 20 jul. 2016 a las 11:28

2 respuestas

La mejor respuesta

Entendí el motivo de la advertencia y lo resolví. Yo usé de

$this->Auth->allow(['display','add',['controller'=>'options','action'=>'add']]);  

La función _isAllowd comprueba si la acción actual es accesible sin autenticación. Esta advertencia se elimina ‌ tomando esta línea en AppController.

0
user6476237user6476237 20 jul. 2016 a las 14:21

Verifique que la variable $this->allowedActions sea una matriz unidimensional o tenga una submatriz que también use la función pr.

pr($this->allowedActions);
die();

Tenga en cuenta que la matriz multidimensional no funciona al pasar la función php incorporada con array_map(). Necesita hacer una función personalizada como custom_strtolower() y debe pasar esta función en array_map().

Espero que te depures y mi truco te ayude a completarte.

0
Tom11 20 jul. 2016 a las 12:01