/** * Filter the query by a related Book object * * @param Book|PropelObjectCollection $book the related object to use as filter * @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL * * @return AuthorQuery The current query, for fluid interface * @throws PropelException - if the provided filter is invalid. */ public function filterByBook($book, $comparison = null) { if ($book instanceof Book) { return $this->addUsingAlias(AuthorPeer::ID, $book->getAuthorId(), $comparison); } elseif ($book instanceof PropelObjectCollection) { return $this->useBookQuery()->filterByPrimaryKeys($book->getPrimaryKeys())->endUse(); } else { throw new PropelException('filterByBook() only accepts arguments of type Book or PropelCollection'); } }
public function testSetAndGetObject() { // case 1: author object to be set is anonymous, book is saved $joyce = new Author(); $joyce->setName('James Joyce'); $joyce->setCreationDatetime(date('Y-m-d H:i:s')); $ulysses = new Book(); $ulysses->setTitle('Ulysses'); $ulysses->setIntroduction('1264 pages of bs by one of the masters.'); $ulysses->setCreationDatetime(date('Y-m-d H:i:s')); $ulysses->save(); $ulysses->setAuthor_Object($joyce); $this->assertReference($ulysses->getAuthor_Object(), $joyce); $ulysses->save(); // $this->assertNotEqual($ulysses->getAuthorId(), $joyce->getAuthorId()); // case 2: author object saved, book is saved $twain = new Author(); $twain->setName('Mark Twain'); $twain->setCreationDatetime(date('Y-m-d H:i:s')); $twain->save(); $huckFinn = new Book(); $huckFinn->setTitle('Huckleberry Finn'); $huckFinn->setIntroduction('meh.'); $huckFinn->setCreationDatetime(date('Y-m-d H:i:s')); $huckFinn->save(); $huckFinn->setAuthor_Object($twain); $this->assertReference($huckFinn->getAuthor_Object(), $twain); $huckFinn->save(); $this->assertNotEqual($huckFinn->getAuthorId(), $twain->getAuthorId()); // case 3: author object is anonymous, book is anonymous $murakami = new Author(); $murakami->setName('Haruki Murakami'); $murakami->setCreationDatetime(date('Y-m-d H:i:s')); $windup = new Book(); $windup->setTitle('The Wind Up Bird Chronicles'); $windup->setIntroduction('trippy.'); $windup->setCreationDatetime(date('Y-m-d H:i:s')); $windup->setAuthor_Object($murakami); $this->assertReference($windup->getAuthor_Object(), $murakami); $windup->save(); // $this->assertNotEqual($windup->getAuthorId(), $murakami->getAuthorId()); // case 4: author object is saved, book is anonymous $heinlein = new Author(); $heinlein->setName('Robert A. Heinlein'); $heinlein->setCreationDatetime(date('Y-m-d H:i:s')); $heinlein->save(); $stranger = new Book(); $stranger->setTitle('Stranger in a Strange Land'); $stranger->setIntroduction('awesome'); $stranger->setCreationDatetime(date('Y-m-d H:i:s')); $stranger->setAuthor_Object($heinlein); $this->assertReference($stranger->getAuthor_Object(), $heinlein); $stranger->save(); $this->assertNotEqual($stranger->getAuthorId(), $heinlein->getAuthorId()); }
/** * Filter the query by a related Book object * * @param Book $book the related object to use as filter * @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL * * @return AuthorQuery The current query, for fluid interface */ public function filterByBook($book, $comparison = null) { return $this->addUsingAlias(AuthorPeer::ID, $book->getAuthorId(), $comparison); }