Как получить полный текущий URL для Cakephp - PullRequest
54 голосов
/ 27 июля 2011

Как вы выводите текущий URL в виде Cake?

Ответы [ 23 ]

3 голосов
/ 05 марта 2014

В объекте запроса у вас есть все необходимое. Чтобы понять это:

debug($this->request->url);

а в вашем случае

$here = $this->request->url;
1 голос
/ 31 декабря 2017

Самый простой способ, который я нашел, это то, что он включает хост / путь / запрос и
работает в Controllers (Cakephp 3.4):

Cake\View\Helper\UrlHelper::build($this->request->getRequestTarget());

, который возвращает что-то вроде этого (мы используем егов качестве URL-адреса для входа в систему):

http://192.168.0.57/archive?melkId=12
1 голос
/ 09 мая 2017

В представлении:

Blank URL: <?php echo $this->Html->Url('/') ?>
Blank Full Url: <?php echo $this->Html->Url('/', true) ?>
Current URL: <?php echo $this->Html->Url($this->here) ?>
Current Full URL: <?php echo $this->Html->Url($this->here, true) ?>

В контроллере

Blank URL: <?php echo Router::url('/') ?>
Blank Full Url: <?php echo Router::url('/', true) ?>
Current URL: <?php echo Router::url($this->request->here()) ?>
Current Full URL: <?php echo Router::url($this->request->here(), true) ?>
1 голос
/ 19 мая 2016

для cakephp3 +:

$url = $this->request->scheme().'://'.$this->request->domain().$this->request->here(false);

получит, например: http://bgq.dev/home/index?t44=333

1 голос
/ 08 марта 2016

для CakePHP 3.x Вы можете использовать UrlHelper:

$this->Url->build(null, true) // output http://somedomain.com/app-name/controller/action/params

$this->Url->build() // output /controller/action/params

Или вы можете использовать PaginatorHelper (если вы хотите использовать его в JavaScript или ...):

$this->Paginator->generateUrl() // returns a full pagination URL without hostname

$this->Paginator->generateUrl([],null,true) // returns a full pagination URL with hostname
1 голос
/ 13 декабря 2012

Путь Cake для 1.3 заключается в использовании Router :: reverse:

Ссылка на документацию

$url = Router::reverse($this->params)
echo $url;

выходы

/Full/Path/From/Root/MyController/MyAction/passed1/named_param:bob/?param1=true&param2=27
0 голосов
/ 26 декабря 2018

После нескольких исследований я получил это как идеальный Полный URL для CakePHP 3. *

$this->request->getUri();

Полный URL будет примерно таким

http://example.com/books/edit/12

Более подробную информацию вы можете прочитать здесь: https://pritomkumar.blogspot.com/2017/04/how-to-get-complete-current-url-for.html

0 голосов
/ 10 июля 2018

В CakePHP 3 $this->here будет устаревшим. Фактический способ использует этот метод:

Router::url($this->request->getRequestTarget())
0 голосов
/ 21 октября 2012

Все ранее предложенные подходы не удовлетворяли моим требованиям для получения полного URL (полного, как в квалифицированном), например, для использования при отправке электронного письма от действия контроллера.Тогда мне также понадобятся схема и имя хоста, и поэтому я наткнулся на следующий подход:

<?php echo Router::url( array( $id ), true ) ?>

В связи с предоставлением массива маршрутизатора текущий контроллер и действие сохраняются, однако идентификатор отсутствует и, следовательно, должен быть предоставленснова здесь.Второй аргумент true на самом деле запрашивает добавление имени хоста и т. Д. Для получения полного URL-адреса.

Использование Router :: url () доступно в любой ситуации и, следовательно, может использоваться в файлах просмотра.

0 голосов
/ 23 ноября 2016

Использовать Html helper

<?php echo $this->Html->url($this->here, true); ?> 

Он выдаст полный URL, который будет начинаться с http или https

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...