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


PHP Doctrine_Collection::remove方法代码示例

本文整理汇总了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);
         }
     }
 }
开发者ID:stelaireri,项目名称:Hive,代码行数:53,代码来源:Collection.php

示例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;
     }
 }
开发者ID:lendji4000,项目名称:compose,代码行数:77,代码来源:EiProfilTable.class.php


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