src/Shell/BasicSeedShell.php
public function entityGenerator(
		Table $Table,
		array $records,
		array $defaults = [],
		array $options = []
	) {
		$defaultOptions = [
			'validate' => true,
			'accessibleFields' => ['*' => true],
		];
		$options = $options + $defaultOptions;

		$keyField = $Table->primaryKey();

		foreach ($records as $r) {
			$r = Hash::merge($defaults, $r);

			$id = (!empty($r[$keyField]) ? $r[$keyField] : false);
			if ($id) {
				$entity = $Table->find()->where([$keyField => $id])->first();
				if ($entity) {
					$entity = $Table->patchEntity($entity, $r, $options);
					if (!$entity->dirty()) {
						$this->verbose("<success>{$Table->alias()} ({$id}): No changes.</success>");
						continue;
					}

				} else {
					$entity = $Table->newEntity($r, $options);
					$entity->isNew(true);
				}

			} else {
				$entity = $Table->newEntity($r, $options);
			}

			$errors = $entity->errors();
			if ($errors) {
				$this->printValidationErrors(
					$Table->alias(),
					$id,
					$errors
				);

				continue;
			}

			yield $entity;
		}
	}
public function entityGenerator(
		Table $Table,
		array $records,
		array $defaults = [],
		array $options = []
	) {
		$defaultOptions = [
			'validate' => true,
			'accessibleFields' => ['*' => true],
		];
		$options = $options + $defaultOptions;

		$keyField = $Table->primaryKey();

		foreach ($records as $r) {
			$r = Hash::merge($defaults, $r);

			$id = (!empty($r[$keyField]) ? $r[$keyField] : false);
			if ($id) {
				$entity = $Table->find()->where([$keyField => $id])->first();
				if ($entity) {
					$entity = $Table->patchEntity($entity, $r, $options);
					if (!$entity->dirty()) {
						$this->verbose("<success>{$Table->alias()} ({$id}): No changes.</success>");
						continue;
					}

				} else {
					$entity = $Table->newEntity($r, $options);
					$entity->isNew(true);
				}

			} else {
				$entity = $Table->newEntity($r, $options);
			}

			$errors = $entity->errors();
			if ($errors) {
				$this->printValidationErrors(
					$Table->alias(),
					$id,
					$errors
				);

				continue;
			}

			yield $entity;
		}
	}
public function entityGenerator ( Table $ Table , array $ records , array $ defaults = [ ] , array $ options = [ ] ) { $ defaultOptions = [ 'validate' => true , 'accessibleFields' => [ '*' => true ] , ] ; $ options = $ options + $ defaultOptions ; $ keyField = $ Table -> primaryKey ( ) ; foreach ( $ records as $ r ) { $ r = Hash :: merge ( $ defaults , $ r ) ; $ id = ( ! empty ( $ r [ $ keyField ] ) ? $ r [ $ keyField ] : false ) ; if ( $ id ) { $ entity = $ Table -> find ( ) -> where ( [ $ keyField => $ id ] ) -> first ( ) ; if ( $ entity ) { $ entity = $ Table -> patchEntity ( $ entity , $ r , $ options ) ; if ( ! $ entity -> dirty ( ) ) { $ this -> verbose ( "<success>{$Table->alias()} ({$id}): No changes.</success>" ) ; continue ; } } else { $ entity = $ Table -> newEntity ( $ r , $ options ) ; $ entity -> isNew ( true ) ; } } else { $ entity = $ Table -> newEntity ( $ r , $ options ) ; } $ errors = $ entity -> errors ( ) ; if ( $ errors ) { $ this -> printValidationErrors ( $ Table -> alias ( ) , $ id , $ errors ) ; continue ; } yield $ entity ; } }
Helper generator for use with importTable().

Yields a single new Entity instance approciate for $Table for each
of $records where the values are merged with $defaults.

Will skip any records that fail to validate, dumping validation
errors to the console in the process.

Used by imporTables().

@param Cake\ORM\Table $Table A Table instance to save records into.
@param array $records An array of Entity records to save into the Table.
@param array $defaults Optional array of default field values to merge into each record.
@param array $options Optional array of newEntity() options to use.
@return void
Helper generator for use with importTable () .