Trait ModelAwareTrait
Provides functionality for loading table classes and other repositories onto properties of the host object.
Example users of this trait are Cake\Controller\Controller and Cake\Console\Shell.
Property Summary
- 
        $_modelFactories protectedarrayA list of model factory functions. 
- 
        $modelClass publicstringThis object's primary model class name. Should be a plural form. CakePHP will not inflect the name. 
Method Summary
- 
          _setModelClass() protectedSet the modelClass and modelKey properties based on conventions. 
- 
          loadModel() publicLoads and constructs repository objects required by this object 
- 
          modelFactory() publicRegister a callable to generate repositories of a given type. 
Method Detail
_setModelClass() ¶ protected
_setModelClass(string $name): voidSet the modelClass and modelKey properties based on conventions.
If the properties are already set they will not be overwritten
Parameters
- 
                string$name
- Class name. 
Returns
voidloadModel() ¶ public
loadModel(string|null $modelClass = null, string $type = 'Table'): objectLoads and constructs repository objects required by this object
Typically used to load ORM Table objects as required. Can also be used to load other types of repository objects your application uses.
If a repository provider does not return an object a MissingModelException will be thrown.
Parameters
- 
                string|null$modelClass optional
- Name of model class to load. Defaults to $this->modelClass 
- 
                string$type optional
- The type of repository to load. Defaults to 'Table' which delegates to Cake\ORM\TableRegistry. 
Returns
objectThe model instance created.
Throws
Cake\Datasource\Exception\MissingModelExceptionIf the model class cannot be found.
InvalidArgumentExceptionWhen using a type that has not been registered.
modelFactory() ¶ public
modelFactory(string $type, callable $factory): voidRegister a callable to generate repositories of a given type.
Parameters
- 
                string$type
- The name of the repository type the factory function is for. 
- 
                callable$factory
- The factory function used to create instances. 
Returns
voidProperty Detail
$modelClass ¶ public
This object's primary model class name. Should be a plural form. CakePHP will not inflect the name.
Example: For an object named 'Comments', the modelClass would be 'Comments'.
Plugin classes should use Plugin.Comments style names to correctly load
models from the correct plugin.
Type
string