Best way to load models in CakePHP 2.0

707

I'm not sure of the best way to load models in CakePHP 2.0 now.


Question 1

I have a model where more than one database field is related to another model.

customers table has the fields country_origincountry_residence and country_study and all of those fields contain an ID from the table countries.

So in my Customer model, how am I supposed to load the Country model?


Question 2

Has Controller::loadModel() been deprecated or is it bad practice to use this? How am I supposed to load a model in the controller?


Question 3

When or why do you have to use App::uses() in a controller or model? I don't understand the point when the models will load anyway if you use the normal methods like loadModel()hasOnehasManybelongsTo, etc.

1Answer


0

This should be simple to understand. If you are using a controller and you need to load another model, you can call:

$this->loadModel('SomeModel');

Then you can make calls to the model like you normally would:

$this->SomeModel->read(null, '1');

App::uses is for lazy loading of classes. So you can still load a model using uses:

App::uses('MyModel', 'Model');

But then you will need to call it differently:

$MyModel = new MyModel();
$MyModel->read(null, '1');

or

MyModel::read(null, '1');

It just depends on where and how you want to use it.

  • answered 3 years ago
  • Gul Hafiz

Your Answer

    Facebook Share