Elgg\Http\Request::setUrlSegments PHP Метод

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

Get a cloned request with new Elgg URL segments
public setUrlSegments ( array $segments ) : Request
$segments array URL segments
Результат Request
    public function setUrlSegments(array $segments)
    {
        $query = $this->query->all();
        $query[Application::GET_PATH_KEY] = '/' . implode('/', $segments);
        return $this->duplicate($query);
    }

Usage Example

Пример #1
0
 /**
  * Filter a request through the route:rewrite hook
  *
  * @param Request $request Elgg request
  *
  * @return Request
  * @access private
  */
 public function allowRewrite(Request $request)
 {
     $segments = $request->getUrlSegments();
     if ($segments) {
         $identifier = array_shift($segments);
     } else {
         $identifier = '';
     }
     $old = array('identifier' => $identifier, 'segments' => $segments);
     $new = _elgg_services()->hooks->trigger('route:rewrite', $identifier, $old, $old);
     if ($new === $old) {
         return $request;
     }
     if (!isset($new['identifier']) || !isset($new['segments']) || !is_string($new['identifier']) || !is_array($new['segments'])) {
         throw new RuntimeException('rewrite_path handler returned invalid route data.');
     }
     // rewrite request
     $segments = $new['segments'];
     array_unshift($segments, $new['identifier']);
     return $request->setUrlSegments($segments);
 }