protected function _keys($keys) {
		if (!$keys) {
			return [];
		}
		$config = $this->_config;
		$hasType = ($config['type'] === 'hasOne' || $config['type'] === 'hasMany');
		$related = Libraries::locate('models', $config[$hasType ? 'from' : 'to']);

		if (!class_exists($related)) {
			throw new ClassNotFoundException("Related model class '{$related}' not found.");
		}
		if (!$related::key()) {
			throw new ConfigException("No key defined for related model `{$related}`.");
		}
		$keys = (array) $keys;
		$related = (array) $related::key();

		if (count($keys) !== count($related)) {
			$msg = "Unmatched keys in relationship `{$config['name']}` between models ";
			$msg .= "`{$config['from']}` and `{$config['to']}`.";
			throw new ConfigException($msg);
		}
		return $hasType ? array_combine($related, $keys) : array_combine($keys, $related);
	}
protected function _keys($keys) {
		if (!$keys) {
			return [];
		}
		$config = $this->_config;
		$hasType = ($config['type'] === 'hasOne' || $config['type'] === 'hasMany');
		$related = Libraries::locate('models', $config[$hasType ? 'from' : 'to']);

		if (!class_exists($related)) {
			throw new ClassNotFoundException("Related model class '{$related}' not found.");
		}
		if (!$related::key()) {
			throw new ConfigException("No key defined for related model `{$related}`.");
		}
		$keys = (array) $keys;
		$related = (array) $related::key();

		if (count($keys) !== count($related)) {
			$msg = "Unmatched keys in relationship `{$config['name']}` between models ";
			$msg .= "`{$config['from']}` and `{$config['to']}`.";
			throw new ConfigException($msg);
		}
		return $hasType ? array_combine($related, $keys) : array_combine($keys, $related);
	}
protected function _keys ( $ keys ) { if ( ! $ keys ) { return [ ] ; } $ config = $ this -> _config ; $ hasType = ( $ config [ 'type' ] === 'hasOne' || $ config [ 'type' ] === 'hasMany' ) ; $ related = Libraries :: locate ( 'models' , $ config [ $ hasType ? 'from' : 'to' ] ) ; if ( ! class_exists ( $ related ) ) { throw new ClassNotFoundException ( "Related model class '{$related}' not found." ) ; } if ( ! $ related :: key ( ) ) { throw new ConfigException ( "No key defined for related model `{$related}`." ) ; } $ keys = ( array ) $ keys ; $ related = ( array ) $ related :: key ( ) ; if ( count ( $ keys ) !== count ( $ related ) ) { $ msg = "Unmatched keys in relationship `{$config['name']}` between models " ; $ msg .= "`{$config['from']}` and `{$config['to']}`." ; throw new ConfigException ( $ msg ) ; } return $ hasType ? array_combine ( $ related , $ keys ) : array_combine ( $ keys , $ related ) ; }
Generates an array of relationship key pairs, where the keys are fields on the origin model,
and values are fields on the lniked model.
Generates an array of relationship key pairs where the keys are fields on the origin model and values are fields on the lniked model .