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.
Direct Users
Indirect Users
- Cake\Command\HelpCommand
- Cake\Command\VersionCommand
- Cake\Shell\SchemaCacheShell
- Cake\Shell\ServerShell
- Cake\Shell\Task\AssetsTask
- Cake\Shell\Task\CommandTask
- Cake\Shell\Task\ExtractTask
- Cake\Shell\Task\LoadTask
- Cake\Shell\Task\UnloadTask
- Cake\Controller\ErrorController
- Cake\Shell\CacheShell
- Cake\Shell\CommandListShell
- Cake\Shell\CompletionShell
- Cake\Shell\I18nShell
- Cake\Shell\OrmCacheShell
- Cake\Shell\PluginShell
- Cake\Shell\RoutesShell
Properties summary
-
$_modelFactories
protectedarray
A list of overridden model factory functions. -
$_modelType
protectedstring
The model type to use. -
$modelClass
publicstring|false|null
This object's primary model class name. Should be a plural form. CakePHP will not inflect the name.
Method Summary
-
_setModelClass() protected
Set the modelClass and modelKey properties based on conventions. -
getModelType() public
Get the model type to be used by this class -
loadModel() public
Loads and constructs repository objects required by this object -
modelFactory() public
Override a existing callable to generate repositories of a given type. -
modelType() public
Set or get the model type to be used by this class -
setModelType() public
Set the model type to be used by this class
Method Detail
_setModelClass() protected ¶
_setModelClass( string $name )
Set the modelClass and modelKey properties based on conventions.
If the properties are already set they will not be overwritten
Parameters
- string $name
- Class name.
loadModel() public ¶
loadModel( string|null $modelClass null , string|null $modelType null )
Loads 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 null
- Name of model class to load. Defaults to $this->modelClass
- string|null $modelType optional null
- The type of repository to load. Defaults to the modelType() value.
Returns
Throws
Cake\Datasource\Exception\MissingModelException
If the model class cannot be found.
InvalidArgumentException
When using a type that has not been registered.
UnexpectedValueException
If no model type has been defined
modelFactory() public ¶
modelFactory( string $type , callable $factory )
Override 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 $factory
- The factory function used to create instances.
modelType() public ¶
modelType( string|null $modelType null )
Set or get the model type to be used by this class
Deprecated
Parameters
- string|null $modelType optional null
- The model type or null to retrieve the current
Returns
setModelType() public ¶
setModelType( string $modelType )
Set the model type to be used by this class
Parameters
- string $modelType
- The model type
Returns
$this
Properties detail
$modelClass ¶
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 false to not use auto-loading on this object. Null auto-detects based on controller name.