eZ\Publish\Core\REST\Server\Output\ValueObjectVisitor\RestRelation::visit PHP Метод

visit() публичный Метод

Visit struct returned by controllers.
public visit ( Visitor $visitor, Generator $generator, RestRelation $data )
$visitor eZ\Publish\Core\REST\Common\Output\Visitor
$generator eZ\Publish\Core\REST\Common\Output\Generator
$data eZ\Publish\Core\REST\Server\Values\RestRelation
    public function visit(Visitor $visitor, Generator $generator, $data)
    {
        $generator->startObjectElement('Relation');
        $visitor->setHeader('Content-Type', $generator->getMediaType('Relation'));
        $generator->startAttribute('href', $this->router->generate('ezpublish_rest_loadVersionRelation', array('contentId' => $data->contentId, 'versionNumber' => $data->versionNo, 'relationId' => $data->relation->id)));
        $generator->endAttribute('href');
        $generator->startObjectElement('SourceContent', 'ContentInfo');
        $generator->startAttribute('href', $this->router->generate('ezpublish_rest_loadContent', array('contentId' => $data->contentId)));
        $generator->endAttribute('href');
        $generator->endObjectElement('SourceContent');
        $generator->startObjectElement('DestinationContent', 'ContentInfo');
        $generator->startAttribute('href', $this->router->generate('ezpublish_rest_loadContent', array('contentId' => $data->relation->getDestinationContentInfo()->id)));
        $generator->endAttribute('href');
        $generator->endObjectElement('DestinationContent');
        if ($data->relation->sourceFieldDefinitionIdentifier !== null) {
            $generator->startValueElement('SourceFieldDefinitionIdentifier', $data->relation->sourceFieldDefinitionIdentifier);
            $generator->endValueElement('SourceFieldDefinitionIdentifier');
        }
        $generator->startValueElement('RelationType', $this->getRelationTypeString($data->relation->type));
        $generator->endValueElement('RelationType');
        $generator->endObjectElement('Relation');
    }

Usage Example

 /**
  * Visit struct returned by controllers
  *
  * @param \eZ\Publish\Core\REST\Common\Output\Visitor $visitor
  * @param \eZ\Publish\Core\REST\Common\Output\Generator $generator
  * @param \eZ\Publish\Core\REST\Server\Values\CreatedRelation $data
  */
 public function visit(Visitor $visitor, Generator $generator, $data)
 {
     parent::visit($visitor, $generator, $data->relation);
     $visitor->setHeader('Location', $this->router->generate('ezpublish_rest_loadVersionRelation', array('contentId' => $data->relation->contentId, 'versionNumber' => $data->relation->versionNo, 'relationId' => $data->relation->relation->id)));
     $visitor->setStatus(201);
 }