Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

cakephp usando componentes como métodos do controlador


Um componente não é o mesmo que um modelo. Então, se você quiser fazer as coisas dessa maneira, você terá que transformar sua Action modelo em um componente.

O componente iria para Controller/Component/ActionComponent.php , e então ele pode ser incluído em seus Controllers assim:
public $components = array(..., 'Action');

A lógica em seu Componente pode ser semelhante à de um Modelo, mas existem algumas diferenças. Por exemplo, você ainda pode ter um modelo de ação, e o componente pode usar isso para CRUD e outras coisas. Você terá que usar ClassRegistry::init() para carregar um modelo em seu componente.

Eu realmente não posso explicar como fazer exatamente o que você quer, uma razão para isso é que eu não sei exatamente o que você quer. No entanto, eu escrevi meu próprio Component antes e você pode usá-lo para referência se você quiser - é possivelmente mais complicado que o seu, então você pode ver como escrever métodos para ele.

Componente ACL personalizado

Nesse exemplo, uma vez incluído em um Controller, posso simplesmente chamar $this->CustomAcl->check() em qualquer lugar que eu goste.

Espero que isso seja suficiente para você começar, pelo menos.