/** * {@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(); } }
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; }