sql >> Base de Datos >  >> RDS >> Mysql

cakephp usando componentes como métodos de controlador

Un componente no es lo mismo que un modelo. Entonces, si quieres hacer las cosas de esta manera, tendrás que cambiar tu Action modelo en un Componente.

El componente iría a Controller/Component/ActionComponent.php , y luego se puede incluir en sus Controladores de esta manera:

public $components = array(..., 'Action');

La lógica en su Componente puede ser similar a la de un Modelo, pero hay algunas diferencias. Por ejemplo, aún podría tener un modelo de acción, y el componente puede usarlo para CRUD y otras cosas. Tendrás que usar ClassRegistry::init() para cargar un modelo en su Componente.

Realmente no puedo explicar cómo hacer exactamente lo que quieres, una de las razones es que no sé con suficiente precisión qué es lo que quieres. Sin embargo, he escrito mi propio Componente antes y puedes usarlo para referencia si lo desea:posiblemente sea más complicado que el suyo, por lo que puede ver cómo escribir métodos para él.

Componente ACL personalizado

En ese ejemplo, una vez que se incluye en un controlador, simplemente puedo llamar a $this->CustomAcl->check() donde quiera.

Espero que esto sea suficiente para que al menos empieces.