public ViewExecutable::hasUrl($args = NULL, $display_id = NULL)
Determines whether you can link to the view or a particular display.
Some displays (e.g. block displays) do not have their own route, but may optionally provide a link to another display that does have a route.
Parameters
array $args: (optional) The arguments.
string $display_id: (optional) The display ID. The current display will be used by default.
Return value
bool TRUE if the current display has a valid route available, FALSE otherwise.
File
- core/modules/views/src/ViewExecutable.php, line 1877
Class
- ViewExecutable
- Represents a view as a whole.
Namespace
Drupal\views
Code
public function hasUrl($args = NULL, $display_id = NULL) { if (!empty($this->override_url)) { return TRUE; } // If the display has a valid route available (either its own or for a // linked display), then we can provide a URL for it. $display_handler = $this->displayHandlers->get($display_id ? : $this->current_display)->getRoutedDisplay(); if (!$display_handler instanceof DisplayRouterInterface) { return FALSE; } // Look up the route name to make sure it exists. The name may exist, but // not be available yet in some instances when editing a view and doing // a live preview. $provider = \Drupal::service('router.route_provider'); try { $provider->getRouteByName($display_handler->getRouteName()); } catch (RouteNotFoundException $e) { return FALSE; } return TRUE; }
Please login to continue.