示例#1
0
 /**
  * {@inheritdoc}
  */
 public function remove($data)
 {
     $entity = null;
     if (is_object($data)) {
         $entity = $data;
     } elseif (is_numeric($data)) {
         $this->source->clear();
         $entity = $this->source->findPk($data);
     } else {
         throw new \InvalidArgumentException('Argument passed is not an object or it\'s not id');
     }
     if (!$entity instanceof \Persistent) {
         throw new \InvalidArgumentException('The $entity instance is not supported by the Propel implementation');
     }
     if ($this->crudManager instanceof CrudManagerInterface) {
         $this->crudManager->remove($entity);
     } else {
         $entity->delete();
     }
 }
示例#2
0
 public function testFindPkCompositeKey()
 {
     BookstoreDataPopulator::depopulate();
     $c = new ModelCriteria('bookstore', 'BookListRel');
     $bookListRel = $c->findPk(array(1, 2));
     $this->assertNull($bookListRel, 'findPk() returns null when the composite primary key is not found');
     Propel::enableInstancePooling();
     BookstoreDataPopulator::populate();
     // save all books to make sure related objects are also saved - BookstoreDataPopulator keeps some unsaved
     $c = new ModelCriteria('bookstore', 'Book');
     $books = $c->find();
     foreach ($books as $book) {
         $book->save();
     }
     // retrieve the test data
     $c = new ModelCriteria('bookstore', 'BookListRel');
     $bookListRelTest = $c->findOne();
     $pk = $bookListRelTest->getPrimaryKey();
     $c = new ModelCriteria('bookstore', 'BookListRel');
     $bookListRel = $c->findPk($pk);
     $this->assertEquals($bookListRelTest, $bookListRel, 'findPk() can find objects with composite primary keys');
 }
 /**
  * This method will return a new model object or the existing model based on db data. This will also
  * set the create date if there is a setter for it when we create a new record.
  *
  * @param mixed $post
  * @param ModelCriteria $query
  * @param string $modelClass
  * @param string $pkFieldName
  *
  * @return object
  */
 protected function getWorkingModel($post, $query, $modelClass, $pkFieldName)
 {
     $newRecord = $this->isNewRecord($post, $pkFieldName);
     $model = $newRecord ? new $modelClass() : $query->findPk($post->{$pkFieldName});
     if ($newRecord && method_exists($model, 'setCreateDate')) {
         $model->setCreateDate(new DateTime());
     }
     return $model;
 }