ZF2: Zend Framework 2 Full URL including host name

后端 未结 4 804
一生所求
一生所求 2021-02-02 00:32

In my view I need to draw full URL. Like this:

http://hostename.com/default/url

When I try to use $this->url(\'default\', array(1,2,3)

相关标签:
4条回答
  • 2021-02-02 00:32

    I found this article with some interesting ways:

    1) without parameters use an empty array:

    // Using a route with the name "register" and the route "/register"
    echo $this->url('register', array(), array('force_canonical' => true)); 
    // Output: http://mydomain.com/register
    

    2) note the differences between:

    echo $this->serverUrl(); 
    // Output: http://mydomain.com
    

    and

    // Current URL: http://mydomain.com/register
    echo $this->serverUrl(true); 
    // Output: http://mydomain.com/register
    

    3) starting from the route

    // The "register" route has the following route: /register
    echo $this->serverUrl($this->url('register')); 
    // Output: http://mydomain.com/register
    
    0 讨论(0)
  • 2021-02-02 00:40

    There is a Zend\View\Helper\ServerUrl to create full url in zend view. Try below code in your view template.

    <?php echo $this->serverUrl()?>
    
    0 讨论(0)
  • 2021-02-02 00:46

    You can use the option force_canonical on the router. All router options go into the third parameter of the url helper:

    url($route, $params, $options)
    

    So you can so something like this:

    $this->url('myroute', array('id' => 123), array('force_canonical' => true))
    
    0 讨论(0)
  • 2021-02-02 00:54

    If you want to set base URL globally, you can do it using onBootstrap method:

    $e->getApplication()->getMvcEvent()->getRouter()->setBaseUrl($baseUrl);
    

    In this case Navigation helpers would also use it.

    To fetch current base URL use ServerUrl helper as described in this thread:

    $serverUrl = $e->getApplication()->getServiceManager()->get('ViewHelperManager')->get('ServerUrl');
    $baseUrl = $serverUrl->__invoke();
    
    0 讨论(0)
提交回复
热议问题