\Cake\DatasourceModelAwareTrait

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.

Summary

Methods
Properties
Constants
loadModel()
modelFactory()
getModelType()
setModelType()
modelType()
$modelClass
No constants found
_setModelClass()
$_modelFactories
$_modelType
N/A
No private methods found
No private properties found
N/A

Properties

$modelClass

$modelClass : 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.

Type

string

$_modelFactories

$_modelFactories : array

A list of overridden model factory functions.

Type

array

$_modelType

$_modelType : string

The model type to use.

Type

string

Methods

loadModel()

loadModel(string|null  $modelClass = null, string|null  $modelType = null) : \Cake\Datasource\RepositoryInterface

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

Name of model class to load. Defaults to $this->modelClass

string|null $modelType

The type of repository to load. Defaults to the modelType() value.

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

Returns

\Cake\Datasource\RepositoryInterface

The model instance created.

modelFactory()

modelFactory(string  $type, callable  $factory) : void

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.

getModelType()

getModelType() : string

Get the model type to be used by this class

Returns

string

setModelType()

setModelType(string  $modelType) : $this

Set the model type to be used by this class

Parameters

string $modelType

The model type

Returns

$this

modelType()

modelType(string|null  $modelType = null) : string|$this

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

Parameters

string|null $modelType

The model type or null to retrieve the current

Returns

string|$this

_setModelClass()

_setModelClass(string  $name) : void

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.