Mysql
 sql >> Database >  >> RDS >> Mysql

cakephp usando i componenti come metodi di controllo

Un componente non è la stessa cosa di un modello. Quindi, se vuoi fare le cose in questo modo, dovrai attivare il tuo Action modello in un componente.

Il componente andrebbe in Controller/Component/ActionComponent.php , e quindi può essere incluso nei tuoi Controller in questo modo:

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

La logica nel tuo Componente può essere simile a quella in un Modello, ma ci sono alcune differenze. Ad esempio, potresti ancora avere un modello Action e il componente può usarlo per CRUD e altre cose. Dovrai usare ClassRegistry::init() per caricare un modello nel tuo componente però.

Non riesco davvero a spiegare come fare esattamente quello che vuoi, uno dei motivi è che non so abbastanza precisamente cosa vuoi. Tuttavia, ho già scritto il mio Componente prima e puoi usarlo per riferimento se vuoi - è forse più complicato del tuo, quindi puoi vedere come scrivere i metodi per questo.

Componente ACL personalizzato

In quell'esempio, una volta incluso in un Controller, posso semplicemente chiamare $this->CustomAcl->check() ovunque mi piace.

Spero che questo sia sufficiente per iniziare almeno.