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 Known Users

Cake\Console\Shell, Cake\Controller\Controller, Cake\Mailer\Mailer, Cake\View\Cell

Indirect Known Users

Cake\Controller\ErrorController, Cake\Shell\CommandListShell, Cake\Shell\Task\ExtractTask, Cake\Shell\Task\LoadTask, Cake\Shell\Task\UnloadTask, Cake\Shell\CompletionShell, Cake\Shell\I18nShell, Cake\Shell\OrmCacheShell, Cake\Shell\PluginShell, Cake\Shell\RoutesShell, Cake\Shell\ServerShell, Cake\Shell\Task\AssetsTask, Cake\Shell\Task\CommandTask

Method Detail

_setModelClasssource 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.

loadModelsource 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

object
The model instance created.

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

modelFactorysource public

modelFactory( string $type , callable $factory )

Register 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.

modelTypesource public

modelType( string|null $modelType null )

Set or get the model type to be used by this class

Parameters

string|null $modelType optional null
The model type or null to retrieve the current

Returns

string|$this
$this

Properties summary

$_modelFactoriessource

protected array

A list of model factory functions.

[]

$_modelTypesource

protected string

The model type to use.

'Table'

$modelClasssource

public string

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.

© 2005–2016 The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
http://api.cakephp.org/3.1/class-Cake.Datasource.ModelAwareTrait.html