public function getEntityPropertySchema(Table $model)
{
$properties = [];
$schema = $model->schema();
foreach ($schema->columns() as $column) {
$properties[$column] = ['kind' => 'column', 'type' => $schema->columnType($column)];
}
foreach ($model->associations() as $association) {
$entityClass = '\\' . ltrim($association->target()->entityClass(), '\\');
if ($entityClass === '\\Cake\\ORM\\Entity') {
$namespace = Configure::read('App.namespace');
list($plugin, ) = pluginSplit($association->target()->registryAlias());
if ($plugin !== null) {
$namespace = $plugin;
}
$namespace = str_replace('/', '\\', trim($namespace, '\\'));
$entityClass = $this->_entityName($association->target()->alias());
$entityClass = '\\' . $namespace . '\\Model\\Entity\\' . $entityClass;
}
$properties[$association->property()] = ['kind' => 'association', 'association' => $association, 'type' => $entityClass];
}
return $properties;
}