getConnection(Propel::CONNECTION_WRITE);
}
$con->beginTransaction();
try {
$obj = $this->getWorkerObject();
foreach ($this as $element) {
$obj->clear();
$obj->fromArray($element);
$obj->setNew($obj->isPrimaryKeyNull());
$obj->save($con);
}
$con->commit();
} catch (PropelException $e) {
$con->rollback();
}
}
/**
* Delete all the elements in the collection
*/
public function delete($con = null)
{
if (null === $con) {
$con = $this->getConnection(Propel::CONNECTION_WRITE);
}
$con->beginTransaction();
try {
foreach ($this as $element) {
$obj = $this->getWorkerObject();
$obj->setDeleted(false);
$obj->fromArray($element);
$obj->delete($con);
}
$con->commit();
} catch (PropelException $e) {
$con->rollback();
throw $e;
}
}
/**
* Get an array of the primary keys of all the objects in the collection
*
* @return array The list of the primary keys of the collection
*/
public function getPrimaryKeys($usePrefix = true)
{
$callable = array($this->getPeerClass(), 'getPrimaryKeyFromRow');
$ret = array();
foreach ($this as $key => $element) {
$key = $usePrefix ? ($this->getModel() . '_' . $key) : $key;
$ret[$key]= call_user_func($callable, array_values($element));
}
return $ret;
}
/**
* Populates the collection from an array
* Uses the object model to force the column types
* Does not empty the collection before adding the data from the array
*
* @param array $arr
*/
public function fromArray($arr)
{
$obj = $this->getWorkerObject();
foreach ($arr as $element) {
$obj->clear();
$obj->fromArray($element);
$this->append($obj->toArray());
}
}
/**
* Get an array representation of the collection
* This is not an alias for getData(), since it returns a copy of the data
*
* @param string $keyColumn If null, the returned array uses an incremental index.
* Otherwise, the array is indexed using the specified column
* @param boolean $usePrefix If true, the returned array prefixes keys
* with the model class name ('Article_0', 'Article_1', etc).
*
*
* $bookCollection->toArray();
* array(
* 0 => array('Id' => 123, 'Title' => 'War And Peace'),
* 1 => array('Id' => 456, 'Title' => 'Don Juan'),
* )
* $bookCollection->toArray('Id');
* array(
* 123 => array('Id' => 123, 'Title' => 'War And Peace'),
* 456 => array('Id' => 456, 'Title' => 'Don Juan'),
* )
* $bookCollection->toArray(null, true);
* array(
* 'Book_0' => array('Id' => 123, 'Title' => 'War And Peace'),
* 'Book_1' => array('Id' => 456, 'Title' => 'Don Juan'),
* )
*
* @return array
*/
public function toArray($keyColumn = null, $usePrefix = false)
{
$ret = array();
foreach ($this as $key => $element) {
$key = null === $keyColumn ? $key : $element[$keyColumn];
$key = $usePrefix ? ($this->getModel() . '_' . $key) : $key;
$ret[$key] = $element;
}
return $ret;
}
/**
* Synonym for toArray(), to provide a similar interface to PopelObjectCollection
*/
public function getArrayCopy($keyColumn = null, $usePrefix = false)
{
if (null === $keyColumn && false === $usePrefix) {
return parent::getArrayCopy();
} else {
return $this->toArray($keyColumn, $usePrefix);
}
}
/**
* Get an associative array representation of the collection
* The first parameter specifies the column to be used for the key,
* And the seconf for the value.
*
* $res = $coll->toKeyValue('Id', 'Name');
*
*
* @return array
*/
public function toKeyValue($keyColumn, $valueColumn)
{
$ret = array();
foreach ($this as $obj) {
$ret[$obj[$keyColumn]] = $obj[$valueColumn];
}
return $ret;
}
protected function getWorkerObject()
{
if (null === $this->workerObject) {
if ($this->model == '') {
throw new PropelException('You must set the collection model before interacting with it');
}
$class = $this->getModel();
$this->workerObject = new $class();
}
return $this->workerObject;
}
}
?>