Exemple #1
0
 /**
  * Generate the location string from the provided object
  * @param  object        $object
  * @param  string        $url    - the Url to be prepended to the location
  * @param  EntityManager $em     - Optionally pass the entity manager to assist in determining a GET origin location
  * @return string|false
  */
 public function getOriginLocation($object, $url, EntityManager $em = null)
 {
     $exposedObjectArray = ObjectToArray::execute($object);
     if (($route = $this->class_metadata->getOriginRoute($em)) !== null) {
         if (!is_null($em)) {
             $pattern = $route->getRoutePattern();
             $ormClassMetadata = $em->getClassMetadata($this->getClassMetaData()->getClassName());
             foreach ($ormClassMetadata->getIdentifierFieldNames() as $identifier) {
                 if (isset($exposedObjectArray[$identifier])) {
                     $pattern = str_replace(':' . $identifier, $exposedObjectArray[$identifier], $pattern);
                 }
             }
             return $url . '/' . ltrim($pattern, '/');
         }
     }
     return false;
 }
 /**
  * Get the origin route (it could be this instance)
  * @param  EntityManager      $em - Optionally pass the entity manager to assist in determining a GET origin location
  * @return null|RouteMetaData $route
  */
 public function getOriginRoute(EntityManager $em = null)
 {
     return $this->class_metadata->getOriginRoute($em);
 }