当前位置: 首页>>代码示例>>PHP>>正文


PHP Table::entityClass方法代码示例

本文整理汇总了PHP中Cake\ORM\Table::entityClass方法的典型用法代码示例。如果您正苦于以下问题:PHP Table::entityClass方法的具体用法?PHP Table::entityClass怎么用?PHP Table::entityClass使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Cake\ORM\Table的用法示例。


在下文中一共展示了Table::entityClass方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: one

 /**
  * Hydrate one entity and its associated data.
  *
  * @param array $data The data to hydrate.
  * @param array $include The associations to include.
  * @return \Cake\ORM\Entity
  * @see \Cake\ORM\Table::newEntity()
  */
 public function one(array $data, array $include = [])
 {
     $propertyMap = $this->_buildPropertyMap($include);
     $schema = $this->_table->schema();
     $tableName = $this->_table->alias();
     $entityClass = $this->_table->entityClass();
     $entity = new $entityClass();
     $entity->source($this->_table->alias());
     if (isset($data[$tableName])) {
         $data = $data[$tableName];
     }
     $properties = [];
     foreach ($data as $key => $value) {
         $columnType = $schema->columnType($key);
         if (isset($propertyMap[$key])) {
             $assoc = $propertyMap[$key]['association'];
             $nested = $propertyMap[$key]['nested'];
             $value = $this->_marshalAssociation($assoc, $value, $nested);
         } elseif ($columnType) {
             $converter = Type::build($columnType);
             $value = $converter->marshal($value);
         }
         $properties[$key] = $value;
     }
     $entity->set($properties);
     return $entity;
 }
开发者ID:ripzappa0924,项目名称:carte0.0.1,代码行数:35,代码来源:Marshaller.php

示例2: setUp

 public function setUp()
 {
     parent::setUp();
     $this->entityMap = ['Authors' => Author::class, 'Users' => User::class, 'Editors' => Editor::class, 'Readers' => Reader::class, 'Subscribers' => Reader::class, '' => User::class];
     $this->table = TableRegistry::get('Users');
     $this->table->entityClass(User::class);
     $authors = TableRegistry::get('Authors', ['table' => 'users']);
     $editors = TableRegistry::get('Editors', ['table' => 'users']);
     $readers = TableRegistry::get('Readers', ['table' => 'users']);
     $authors->addBehavior('Robotusers/TableInheritance.Sti');
     $editors->addBehavior('Robotusers/TableInheritance.Sti');
     $readers->addBehavior('Robotusers/TableInheritance.Sti');
     $this->table->addBehavior('Robotusers/TableInheritance.StiParent', ['discriminatorMap' => ['Authors' => 'Authors', 'Editors' => 'Editors'], 'tableMap' => ['Readers' => ['Readers', 'Subscribers']]]);
     $authors->entityClass(Author::class);
     $editors->entityClass(Editor::class);
     $readers->entityClass(Reader::class);
 }
开发者ID:robotusers,项目名称:cakephp-table-inheritance,代码行数:17,代码来源:StiParentBehaviorTest.php

示例3: one

 /**
  * Hydrate one entity and its associated data.
  *
  * ### Options:
  *
  * - validate: Set to false to disable validation. Can also be a string of the validator ruleset to be applied.
  *   Defaults to true/default.
  * - associated: Associations listed here will be marshalled as well. Defaults to null.
  * - fieldList: A whitelist of fields to be assigned to the entity. If not present,
  *   the accessible fields list in the entity will be used. Defaults to null.
  * - accessibleFields: A list of fields to allow or deny in entity accessible fields. Defaults to null
  * - forceNew: When enabled, belongsToMany associations will have 'new' entities created
  *   when primary key values are set, and a record does not already exist. Normally primary key
  *   on missing entities would be ignored. Defaults to false.
  *
  * The above options can be used in each nested `associated` array. In addition to the above
  * options you can also use the `onlyIds` option for HasMany and BelongsToMany associations.
  * When true this option restricts the request data to only be read from `_ids`.
  *
  * ```
  * $result = $marshaller->one($data, [
  *   'associated' => ['Tags' => ['onlyIds' => true]]
  * ]);
  * ```
  *
  * @param array $data The data to hydrate.
  * @param array $options List of options
  * @return \Cake\ORM\Entity
  * @see \Cake\ORM\Table::newEntity()
  */
 public function one(array $data, array $options = [])
 {
     list($data, $options) = $this->_prepareDataAndOptions($data, $options);
     $propertyMap = $this->_buildPropertyMap($options);
     $schema = $this->_table->schema();
     $primaryKey = (array) $this->_table->primaryKey();
     $entityClass = $this->_table->entityClass();
     $entity = new $entityClass();
     $entity->source($this->_table->registryAlias());
     if (isset($options['accessibleFields'])) {
         foreach ((array) $options['accessibleFields'] as $key => $value) {
             $entity->accessible($key, $value);
         }
     }
     $marshallOptions = [];
     if (isset($options['forceNew'])) {
         $marshallOptions['forceNew'] = $options['forceNew'];
     }
     $errors = $this->_validate($data, $options, true);
     $properties = [];
     foreach ($data as $key => $value) {
         if (!empty($errors[$key])) {
             if ($entity instanceof InvalidPropertyInterface) {
                 $entity->invalid($key, $value);
             }
             continue;
         }
         $columnType = $schema->columnType($key);
         if (isset($propertyMap[$key])) {
             $assoc = $propertyMap[$key]['association'];
             $value = $this->_marshalAssociation($assoc, $value, $propertyMap[$key] + $marshallOptions);
         } elseif ($value === '' && in_array($key, $primaryKey, true)) {
             // Skip marshalling '' for pk fields.
             continue;
         } elseif ($columnType) {
             $converter = Type::build($columnType);
             $value = $converter->marshal($value);
         }
         $properties[$key] = $value;
     }
     if (!isset($options['fieldList'])) {
         $entity->set($properties);
         $entity->errors($errors);
         return $entity;
     }
     foreach ((array) $options['fieldList'] as $field) {
         if (array_key_exists($field, $properties)) {
             $entity->set($field, $properties[$field]);
         }
     }
     $entity->errors($errors);
     return $entity;
 }
开发者ID:rlugojr,项目名称:cakephp,代码行数:83,代码来源:Marshaller.php

示例4: one

 /**
  * Hydrate one entity and its associated data.
  *
  * ### Options:
  *
  * - validate: Set to false to disable validation. Can also be a string of the validator ruleset to be applied.
  *   Defaults to true/default.
  * - associated: Associations listed here will be marshalled as well. Defaults to null.
  * - fieldList: A whitelist of fields to be assigned to the entity. If not present,
  *   the accessible fields list in the entity will be used. Defaults to null.
  * - accessibleFields: A list of fields to allow or deny in entity accessible fields. Defaults to null
  * - forceNew: When enabled, belongsToMany associations will have 'new' entities created
  *   when primary key values are set, and a record does not already exist. Normally primary key
  *   on missing entities would be ignored. Defaults to false.
  *
  * The above options can be used in each nested `associated` array. In addition to the above
  * options you can also use the `onlyIds` option for HasMany and BelongsToMany associations.
  * When true this option restricts the request data to only be read from `_ids`.
  *
  * ```
  * $result = $marshaller->one($data, [
  *   'associated' => ['Tags' => ['onlyIds' => true]]
  * ]);
  * ```
  *
  * @param array $data The data to hydrate.
  * @param array $options List of options
  * @return \Cake\ORM\Entity
  * @see \Cake\ORM\Table::newEntity()
  */
 public function one(array $data, array $options = [])
 {
     list($data, $options) = $this->_prepareDataAndOptions($data, $options);
     $primaryKey = (array) $this->_table->primaryKey();
     $entityClass = $this->_table->entityClass();
     $entity = new $entityClass();
     $entity->source($this->_table->registryAlias());
     if (isset($options['accessibleFields'])) {
         foreach ((array) $options['accessibleFields'] as $key => $value) {
             $entity->accessible($key, $value);
         }
     }
     $errors = $this->_validate($data, $options, true);
     $options['isMerge'] = false;
     $propertyMap = $this->_buildPropertyMap($data, $options);
     $properties = [];
     foreach ($data as $key => $value) {
         if (!empty($errors[$key])) {
             if ($entity instanceof InvalidPropertyInterface) {
                 $entity->invalid($key, $value);
             }
             continue;
         }
         if ($value === '' && in_array($key, $primaryKey, true)) {
             // Skip marshalling '' for pk fields.
             continue;
         } elseif (isset($propertyMap[$key])) {
             $properties[$key] = $propertyMap[$key]($value, $entity);
         } else {
             $properties[$key] = $value;
         }
     }
     if (!isset($options['fieldList'])) {
         $entity->set($properties);
         $entity->errors($errors);
         return $entity;
     }
     foreach ((array) $options['fieldList'] as $field) {
         if (array_key_exists($field, $properties)) {
             $entity->set($field, $properties[$field]);
         }
     }
     $entity->errors($errors);
     return $entity;
 }
开发者ID:nrother,项目名称:cakephp,代码行数:75,代码来源:Marshaller.php

示例5: groupTranslations

 /**
  * Modifies the results from a table find in order to merge full translation records
  * into each entity under the `_translations` key
  *
  * @param \Cake\Datasource\ResultSetInterface $results Results to modify.
  * @return \Cake\Collection\Collection
  */
 public function groupTranslations($results)
 {
     return $results->map(function ($row) {
         $translations = (array) $row->get('_i18n');
         $grouped = new Collection($translations);
         $result = [];
         foreach ($grouped->combine('field', 'content', 'locale') as $locale => $keys) {
             $entityClass = $this->_table->entityClass();
             $translation = new $entityClass($keys + ['locale' => $locale], ['markNew' => false, 'useSetters' => false, 'markClean' => true]);
             $result[$locale] = $translation;
         }
         $options = ['setter' => false, 'guard' => false];
         $row->set('_translations', $result, $options);
         unset($row['_i18n']);
         $row->clean();
         return $row;
     });
 }
开发者ID:QueenCityCodeFactory,项目名称:cakephp,代码行数:25,代码来源:TranslateBehavior.php

示例6: one

 /**
  * Hydrate one entity and its associated data.
  *
  * ### Options:
  *
  * * associated: Associations listed here will be marshalled as well.
  * * fieldList: A whitelist of fields to be assigned to the entity. If not present,
  *   the accessible fields list in the entity will be used.
  * * accessibleFields: A list of fields to allow or deny in entity accessible fields.
  *
  * @param array $data The data to hydrate.
  * @param array $options List of options
  * @return \Cake\ORM\Entity
  * @see \Cake\ORM\Table::newEntity()
  */
 public function one(array $data, array $options = [])
 {
     $propertyMap = $this->_buildPropertyMap($options);
     $schema = $this->_table->schema();
     $tableName = $this->_table->alias();
     $entityClass = $this->_table->entityClass();
     $entity = new $entityClass();
     $entity->source($this->_table->alias());
     if (isset($data[$tableName])) {
         $data = $data[$tableName];
     }
     if (isset($options['accessibleFields'])) {
         foreach ((array) $options['accessibleFields'] as $key => $value) {
             $entity->accessible($key, $value);
         }
     }
     $primaryKey = $schema->primaryKey();
     $properties = [];
     foreach ($data as $key => $value) {
         $columnType = $schema->columnType($key);
         if (isset($propertyMap[$key])) {
             $assoc = $propertyMap[$key]['association'];
             $value = $this->_marshalAssociation($assoc, $value, $propertyMap[$key]);
         } elseif ($value === '' && in_array($key, $primaryKey, true)) {
             // Skip marshalling '' for pk fields.
             continue;
         } elseif ($columnType) {
             $converter = Type::build($columnType);
             $value = $converter->marshal($value);
         }
         $properties[$key] = $value;
     }
     if (!isset($options['fieldList'])) {
         $entity->set($properties);
         return $entity;
     }
     foreach ((array) $options['fieldList'] as $field) {
         if (isset($properties[$field])) {
             $entity->set($field, $properties[$field]);
         }
     }
     return $entity;
 }
开发者ID:maitrepylos,项目名称:nazeweb,代码行数:58,代码来源:Marshaller.php

示例7: groupVersions

 /**
  * Modifies the results from a table find in order to merge full version records
  * into each entity under the `_versions` key
  *
  * @param \Cake\Datasource\ResultSetInterface $results Results to modify.
  * @return \Cake\Collection\Collection
  */
 public function groupVersions($results)
 {
     $property = $this->versionAssociation()->property();
     return $results->map(function ($row) use($property) {
         $versionField = $this->_config['versionField'];
         $versions = (array) $row->get($property);
         $grouped = new Collection($versions);
         $result = [];
         foreach ($grouped->combine('field', 'content', 'version_id') as $versionId => $keys) {
             $entityClass = $this->_table->entityClass();
             $version = new $entityClass($keys + [$versionField => $versionId], ['markNew' => false, 'useSetters' => false, 'markClean' => true]);
             $result[$versionId] = $version;
         }
         $options = ['setter' => false, 'guard' => false];
         $row->set('_versions', $result, $options);
         unset($row[$property]);
         $row->clean();
         return $row;
     });
 }
开发者ID:josegonzalez,项目名称:cakephp-version,代码行数:27,代码来源:VersionBehavior.php

示例8: initialize

 /**
  * Constructor hook method.
  *
  * Implement this method to avoid having to overwrite
  * the constructor and call parent.
  *
  * @param array $config The configuration array this behavior is using.
  * @return void
  */
 public function initialize(array $config)
 {
     if ($this->_config['length'] === null) {
         $length = $this->_table->schema()->column($this->_config['field'])['length'];
         $this->_config['length'] = $length ?: 0;
     }
     $label = $this->_config['label'] = (array) $this->_config['label'];
     if ($this->_table->behaviors()->has('Translate')) {
         $this->_config['length'] = false;
     }
     if ($this->_config['length']) {
         foreach ($label as $field) {
             $alias = $this->_table->alias();
             if (strpos($field, '.')) {
                 list($alias, $field) = explode('.', $field);
                 if (!$this->_table->{$alias}->hasField($field)) {
                     throw new Exception('(SluggedBehavior::setup) model ' . $this->_table->{$alias}->name . ' is missing the field ' . $field . ' (specified in the setup for model ' . $this->_table->name . ') ');
                 }
             } elseif (!$this->_table->hasField($field) && !method_exists($this->_table->entityClass(), '_get' . Inflector::classify($field))) {
                 throw new Exception('(SluggedBehavior::setup) model ' . $this->_table->name . ' is missing the field ' . $field . ' specified in the setup.');
             }
         }
     }
 }
开发者ID:dereuromark,项目名称:cakephp-tools,代码行数:33,代码来源:SluggedBehavior.php

示例9: testSetEntityClass

 /**
  * Tests setting a entity class object using the setter method
  *
  * @return void
  */
 public function testSetEntityClass()
 {
     $table = new Table();
     $class = '\\' . $this->getMockClass('\\Cake\\ORM\\Entity');
     $table->entityClass($class);
     $this->assertEquals($class, $table->entityClass());
 }
开发者ID:jdaosavanh,项目名称:clickerwebapp,代码行数:12,代码来源:TableTest.php


注:本文中的Cake\ORM\Table::entityClass方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。