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 protected(callable|Cake\Datasource\Locator\LocatorInterface)[]A list of overridden model factory functions. 
- 
        $_modelType protectedstringThe model type to use. 
- 
        $modelClass protectedstring|nullThis object's primary model class name. Should be a plural form. CakePHP will not inflect the name. 
Method Summary
- 
          _setModelClass() protectedSet the modelClass property based on conventions. 
- 
          getModelType() publicGet the model type to be used by this class 
- 
          loadModel() publicLoads and constructs repository objects required by this object 
- 
          modelFactory() publicOverride a existing callable to generate repositories of a given type. 
- 
          setModelType() publicSet the model type to be used by this class 
Method Detail
_setModelClass() ¶ protected
_setModelClass(string $name): voidSet the modelClass property based on conventions.
If the property is already set it will not be overwritten
Parameters
- 
                string$name
- Class name. 
Returns
voidgetModelType() ¶ public
getModelType(): stringGet the model type to be used by this class
Returns
stringloadModel() ¶ public
loadModel(string|null $modelClass = null, string|null $modelType = null): Cake\Datasource\RepositoryInterfaceLoads 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. The name can be an alias like - 'Post'or FQCN like- App\Model\Table\PostsTable::class.
- 
                string|null$modelType optional
- The type of repository to load. Defaults to the getModelType() value. 
Returns
Cake\Datasource\RepositoryInterfaceThe model instance created.
Throws
Cake\Datasource\Exception\MissingModelExceptionIf the model class cannot be found.
UnexpectedValueExceptionIf $modelClass argument is not provided and ModelAwareTrait::$modelClass property value is empty.
modelFactory() ¶ public
modelFactory(string $type, callable|Cake\Datasource\Locator\LocatorInterface $factory): voidOverride a existing callable to generate repositories of a given type.
Parameters
- 
                string$type
- The name of the repository type the factory function is for. 
- 
                callable|Cake\Datasource\Locator\LocatorInterface$factory
- The factory function used to create instances. 
Returns
voidsetModelType() ¶ public
setModelType(string $modelType): $thisSet the model type to be used by this class
Parameters
- 
                string$modelType
- The model type 
Returns
$thisProperty Detail
$_modelFactories ¶ protected
A list of overridden model factory functions.
Type
(callable|Cake\Datasource\Locator\LocatorInterface)[]$modelClass ¶ protected
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.
Use empty string to not use auto-loading on this object. Null auto-detects based on controller name.
Type
string|null