First off CakePHP uses the "convention over configuration" convention. This heavily explains a lot! :) There is a thingy called Inflector - it "just" 'pluralizes and singularizes English nouns. Used by Cake's naming conventions throughout the framework.'
This combined with the conventions and a few key principles makes it possible that Cake tells which Class to bind to which other.
So, $this->model
in a controller will be the Model directly associated with this Controller.
For example in a UsersController
, $this->model
would be the User
model.
Other binded models are defined in the $uses
property of the Controller.
Through $this->model
you call only the controller's own model.
To call another binded model (for ex Post
) use:
$this->Post->findAll();
$this->model
i just a convenient shortcut from any given controller.