Example #1
0
 /**
  * Find route segment that could have specified parameters
  *
  * @param Route $route  Route
  * @param array $params Route parameters
  *
  * @return Template
  * @throws \InvalidArgumentException
  */
 protected function getSegment(Route $route, array $params)
 {
     $segments = $route->getPath()->getSegments();
     foreach ($segments as $segment) {
         $diff = array_diff_key($segment->getParams(), $params);
         if (empty($diff)) {
             return $segment;
         }
     }
     throw new \InvalidArgumentException(sprintf("Route '%s' does not have any segment that match specified parameters: '%s' (invalid parameter count).", $route->getName(), implode(', ', array_keys($params))));
 }