sql >> Databasteknik >  >> RDS >> Mysql

cakephp använder komponenter som kontrollermetoder

En komponent är inte detsamma som en modell. Så om du vill göra saker på det här sättet måste du ändra din Action modellera till en komponent.

Komponenten skulle gå in i Controller/Component/ActionComponent.php , och sedan kan den inkluderas i dina Controllers så här:

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

Logiken i din komponent kan likna den i en modell, men det finns vissa skillnader. Till exempel kan du fortfarande ha en Action-modell, och komponenten kan använda den för CRUD och andra saker. Du måste använda ClassRegistry::init() för att ladda en modell i din komponent dock.

Jag kan inte riktigt förklara hur man gör exakt vad du vill, en anledning till det är att jag inte vet exakt tillräckligt vad det är du vill. Däremot har jag skrivit min egen komponent tidigare och du kan använda den för referens om du vill - det är möjligen mer komplicerat än ditt så du kan se hur du skriver metoder för det.

Anpassad ACL-komponent

I det exemplet, när det väl är inkluderat i en Controller, kan jag helt enkelt anropa $this->CustomAcl->check() var som helst jag vill.

Jag hoppas att detta är tillräckligt för att du åtminstone ska komma igång.




  1. Överlappande kontrollbegränsning för datumintervall

  2. Hitta grupp med poster som matchar flera värden

  3. hur man loggar in på mysql och frågar databasen från linux terminal

  4. gem install pg kan inte binda till libpq