Entiendo que hay dos maneras de aplicar filtros a nuestras acciones:
1 Directamente en el controlador sobrescribiendo el método filter
2 Creando una clase en un archivo distinto , que herede de CFilter , algo así:
Código:
Y al mismo tiempo en filter tendría que indicar la ruta de este archivo , el cual he metido en protected/filters/PerformanceFilter.php (algo así):class PerformanceFilter extends CFilter { protected function preFilter($filterChain) { // logic being applied before the action is executed return true; // false if the action should not be executed } protected function postFilter($filterChain) { // logic being applied after the action is executed } }
Código:
El problema es que cuando intento ejecutar mi acción , me sale este error:public function filters() { return array( 'accessControl', // perform access control for CRUD operations 'postOnly + delete', // we only allow deletion via POST request array('application.filters.PerformanceFilter + create'), ); }
include(PerformanceFilter.php): failed to open stream: No such file or directory
Se me olvidaba decir que si quiero crear una clase externa al controlador para crear mis filtros, es porque estos van a ser utilzados más de una vez por mi aplicación, y no veo muy lógico tener que crearlos una y otra vez en cada controlador que necesite utilizarlos.
Gracias de antemano