/** * Устанавливает в провайдер данных данные в поле типа ObjectRelationField. * @param string $dataSource идентификатор источника данных для элемента * @param string $data данные * @throws UnexpectedValueException если данные в неверном формате */ private function setObjectRelationData($dataSource, $data) { if (!is_string($data) && !is_null($data)) { throw new UnexpectedValueException('Cannot set data. Data should be string or null.'); } $info = explode(ObjectRelationField::SEPARATOR, $data); if (count($info) != 2) { throw new UnexpectedValueException('Cannot set data. Invalid data format.'); } list($collectionName, $guid) = $info; $value = $this->getCollectionManager()->getCollection($collectionName)->get($guid); $this->data->setValueByPath($dataSource, $value); }