コード例 #1
0
ファイル: Catalog.php プロジェクト: taryono/school
 public function updateWriters($writers_name)
 {
     $writers_name = preg_split('/\\//', $writers_name);
     $new = array();
     foreach ($writers_name as $name) {
         $name = trim($name);
         //if ($name == '') continue;
         //array_push($new, WriterPeer::retrieveByName($name)->getId());
         if ($name == '') {
             continue;
         }
         if (WriterPeer::retrieveByName($name)->getId() != null) {
             array_push($new, WriterPeer::retrieveByName($name)->getId());
         } else {
             $w = new Writer();
             $w->setName($name);
         }
     }
     $old = split(',', $this->getWritersId());
     if ($new == null) {
         $removed = $old;
         $inserted = array();
     } else {
         $inserted = array_diff($new, $old);
         $removed = array_diff($old, $new);
     }
     foreach ($removed as $id) {
         if ($id == null || $id == '') {
             continue;
         }
         $cw = CatalogWriterPeer::retrieveByPK($this->getId(), $id);
         $cw->delete();
     }
     foreach ($inserted as $id) {
         $cw = new CatalogWriter();
         $cw->setCatalogId($this->getId());
         $cw->setWriterId($id);
         $cw->save();
     }
 }