Всем дорого времени суток. Подскажите пожалуйста как передать адрес текущей страницы в контроллер, т.е. есть представление view, в нем форма, мне нужно передать url текущей страницы в action контроллера.
Всем дорого времени суток. Подскажите пожалуйста как передать адрес текущей страницы в контроллер, т.е. есть представление view, в нем форма, мне нужно передать url текущей страницы в action контроллера.
Копайте в сторону Yii::app()->createUrl() (см также CHtml::normalizeUrl)
А вообще пустой action формы автоматически означает текущую страницу.
Ничего не понял если честно
Можете расписать более подробно зачем это нужно? Вообще URL возвращает такой вот запрос:
Yii::app()->getRequest()->getUrl()
А вообще ваш URL будет baseUrl/controller/action/?..
Именно, нужно вытянуть адрес текущей страницы, точнее вытянуть то я его вытянул с помощью
$this->createUrl('', $_GET);
, но мне нужно отправить этот url в action контроллера
Нужно это для того чтоб отправить адрес текущей страницы на email, т.е. на странице есть форма, при отправке данные которые ввел пользователь отправляются на email+нужно туда же отправить и адрес страницы с котторой был отправлен запрос, как-то так
Yii::app()->getRequest()->getUrl(); возвращает имя контроллера и action, а мне нужно передать в action именно адрес страницы с которой отправлен запрос, к примеру http://site.ru/products/test.html
Yii::app()->homeUrl.Yii::app()->getRequest()->url;
//извиняюсь опечатался ранее
Yii::app()->homeUrl.Yii::app()->getRequest()->getRequestUri();
Тогда как то так.
Все равно получаю имя контроллера и action. Правда я в контроллере пишу:
public function actionSend() {
$model=new Products;
if(isset($_POST['Products']))
{
echo Yii::app()->getRequest()->getRequestUri();
exit();
}
}
Получаю /products/send, а нужно http://site.ru/products/test.html Наверное я чего-то не так делаю
Yii::app()->homeUrl вернет вам http://site.ru/ а Yii::app()->homeUrl.Yii::app()->getRequest()->getRequestUri(); то что вам нужно
В том то и дело что оно возвращает /products/send
Я думаю чуть по другому сделать. В layout(views.php) есть нужная мне строка $model->alias, только вот как ее передать в контроллер, я тоже хз, как не пробовал - ничего не передается вообще
Yii::app()->getRequest()->getUrl() - /index.php?r=site/index&x=1
Yii::app()->getRequest()->getHostInfo() - http://my-domain.local
Yii::app()->getRequest()->getRequestUri() - /index.php?r=site/index&x=1
Yii::app()->getRequest()->getQueryString() - r=site/index&x=1
Yii::app()->getRequest()->getPathInfo();// - /site/index
Yii::app()->request->getUrlReferrer(); // Возвращает чпу или url предыдущей страницы
Найдено на просторах тырнета, может кому пригодится. Вопрос решен, всем спасибо за помощь, тему можно закрывать.