Good old MVC

While the component based structure of neoan3 (and many other modern web frameworks) doesn't make it apparent, the layers follow a classical separation of model, view and controller. This is important for both reusability and security.

As such, only component controllers (and frames, but that's usually a bad choice) can access a model. You should always look at the data layer as independent construct and not place any business-logic in your models.

Using models (CRUD) Databases & migrations