/** * Relation field related to an object * * @param string $key A relation field key * @param Object $obj Target object to relate * @return self */ public function relatedTo($key, $obj) { $this->where['$relatedTo'] = array("key" => $key, "object" => $obj->getPointer()); return $this; }
public function testMergeWithRelationOperation() { $child1 = new Object("TestObject", "abc101"); $op = new RelationOperation("foo", array($child1), null); $child2 = new Object("TestObject", "abc102"); $op2 = new RelationOperation("foo", null, array($child2)); $op3 = $op->mergeWith($op2); $this->assertTrue($op3 instanceof RelationOperation); $out = $op3->encode(); // it adds child1, removes child2 $this->assertEquals("Batch", $out["__op"]); $this->assertEquals(array($child1->getPointer()), $out["ops"][0]["objects"]); $this->assertEquals(array($child2->getPointer()), $out["ops"][1]["objects"]); }
/** * Query on the parent class where child is in the relation * * @param Object $child Child object * @return Query */ public function getReverseQuery(Object $child) { $query = new Query($this->parent->getClassName()); $query->equalTo($this->key, $child->getPointer()); return $query; }