本文整理汇总了PHP中Doctrine_Collection::remove方法的典型用法代码示例。如果您正苦于以下问题:PHP Doctrine_Collection::remove方法的具体用法?PHP Doctrine_Collection::remove怎么用?PHP Doctrine_Collection::remove使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Doctrine_Collection
的用法示例。
在下文中一共展示了Doctrine_Collection::remove方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: populateRelated
/**
* Populate the relationship $name for all records in the passed collection
*
* @param string $name
* @param Doctrine_Collection $coll
* @return void
*/
public function populateRelated($name, Doctrine_Collection $coll)
{
$rel = $this->_table->getRelation($name);
$table = $rel->getTable();
$foreign = $rel->getForeign();
$local = $rel->getLocal();
if ($rel instanceof Doctrine_Relation_LocalKey) {
foreach ($this->data as $key => $record) {
foreach ($coll as $k => $related) {
if ($related[$foreign] == $record[$local]) {
$this->data[$key]->setRelated($name, $related);
}
}
}
} elseif ($rel instanceof Doctrine_Relation_ForeignKey) {
foreach ($this->data as $key => $record) {
if (!$record->exists()) {
continue;
}
$sub = new Doctrine_Collection($table);
foreach ($coll as $k => $related) {
if ($related[$foreign] == $record[$local]) {
$sub->add($related);
$coll->remove($k);
}
}
$this->data[$key]->setRelated($name, $sub);
}
} elseif ($rel instanceof Doctrine_Relation_Association) {
$identifier = $this->_table->getIdentifier();
$asf = $rel->getAssociationFactory();
$name = $table->getComponentName();
foreach ($this->data as $key => $record) {
if (!$record->exists()) {
continue;
}
$sub = new Doctrine_Collection($table);
foreach ($coll as $k => $related) {
if ($related->get($local) == $record[$identifier]) {
$sub->add($related->get($name));
}
}
$this->data[$key]->setRelated($name, $sub);
}
}
}
示例2: reload
public function reload($projets, $project_id, $project_ref, Doctrine_Connection $conn = null)
{
if ($conn == null) {
$conn = Doctrine_Manager::connection();
}
//Création de la collection d'objet EiProfil à ajouter
$collection = new Doctrine_Collection("EiProfil");
$items = $projets->getElementsByTagName("ei_profiles");
if ($items->length > 0) {
//ya t-il des éléments à traiter?
$ei_profiles = $items->item(0)->getElementsByTagName("ei_profile");
if ($ei_profiles != null) {
foreach ($ei_profiles as $key => $ei_profile) {
$profile_id = $ei_profile->getAttribute("profile_id");
$profile_ref = $ei_profile->getAttribute("profile_ref");
//recherche du profil en base
if ($profile_id != null && $profile_ref) {
//l'élément n'existe pas encore, et dans ce cas on le crée
$new_ei_profile = new EiProfil();
$new_ei_profile->setProfileId($profile_id);
$new_ei_profile->setProfileRef($profile_ref);
$new_ei_profile->setProjectId($project_id);
$new_ei_profile->setProjectRef($project_ref);
$new_ei_profile->setName($ei_profile->getElementsByTagName("name")->item(0)->nodeValue);
$new_ei_profile->setBaseUrl($ei_profile->getElementsByTagName("base_url")->item(0)->nodeValue);
$new_ei_profile->setDescription($ei_profile->getElementsByTagName("description")->item(0)->nodeValue);
$new_ei_profile->setParentId($ei_profile->getElementsByTagName("parent_id")->item(0)->nodeValue);
$new_ei_profile->setParentRef($ei_profile->getElementsByTagName("parent_ref")->item(0)->nodeValue);
$new_ei_profile->setIsDefault($ei_profile->getElementsByTagName("is_default")->item(0)->nodeValue);
$new_ei_profile->setCreatedAt($ei_profile->getElementsByTagName("created_at")->item(0)->nodeValue);
$new_ei_profile->setUpdatedAt($ei_profile->getElementsByTagName("updated_at")->item(0)->nodeValue);
$collection->add($new_ei_profile, $key);
}
}
/*Traitement de la collection de profil .
* La gestion des rechargements de profil est spéciale car on doit prendre en compte
* les associations scenario-profil pour les profils dupliqués sur la plate forme
* centrale.On éffectue pour célà un parcours afin d'analyser les profils récupérés
*/
while ($collection->getFirst()) {
//Tant qu'il existe des profiles dans la collection
foreach ($collection as $key => $profile) {
if (!$this->findIfProfileExists($profile, $conn)) {
//Si le profile n'existe pas en base
if ($profile->getParentId() != null && $profile->getParentRef() != null) {
//Si le profile possède un parent
//On recherche le parent du profile
$profileParent = $conn->getTable('EiProfil')->findOneByProfileIdAndProfileRef($profile->getParentId(), $profile->getParentRef());
//Si le parent existe déjà côté compose (client)
if ($profileParent != null) {
//On crée les relations scénario-profil pour le profile enfant
$this->createRelationForProfileChild($profileParent, $profile, $conn);
$profile->save($conn);
//On sauvegarde le profil
$collection->remove($key);
//On supprime le profil de la collection
}
} else {
// si le profil ne possède pas de parent (premier chargement du projet), on le crée
$profile->save($conn);
$collection->remove($key);
//On supprime le profil de la collection
}
} else {
//Si le profile existe , on le met à jour
$this->updateExistProfile($profile, $conn);
$collection->remove($key);
//On supprime le profil de la collection
}
}
}
// if($collection->getFirst()) $collection->save($conn); //Sauvegarde de la collection
return 1;
}
return null;
}
}