diman
(Dpanov76)
1
Здравствуйте господа программисты.
Подскажите пожалуйста как лучше поступить в решении этой задачи.
У меня по умолчанию URL такой:
h t t p://w w w.website.com/
Когда кликаешь по любой ссылке становится так
h t t p ://w w w.website.com/controller/action/
в том числе и когда нажимаем на ссылку "на главную" получается что-то типа
h t t p ://w w w .website.com/site/index/
На главной странице есть форма логина с отправкой на экшен login (который внутри контроллера site)
так вот когда url такой - h t t p ://w w w.website.com/controller/action/
Тогда все работает, а когда - h t t p://w w w.website.com/ - тогда не работает говорит что "Unable to resolve the request "login".
Я конечно могу в форме прописать путь controller/action, но тогда полдучаются остальные страницы потом в виде
h t t p ://w w w.website.com/controller/controller/action - а этого мне не надо.
как избежать подобной проблемы с путями?
Подскажите пожалуйста
Спасибо
diman
(Dpanov76)
2
Одно решение - тупо после установки на хостинг прописать абсолютных путь к экшену.
Есть идеи как решить это не прибегая к абсолютным ссылкам?
andy_s
(Arekandrei)
3
В качестве атрибута action для формы нужно передавать массив
array('/site/login')
чтобы с любой страницы сайта данные отсылались на SiteController/actionLogin.
diman
(Dpanov76)
4
Спасибо Andy
у меня ворма просто типа
<form action="login.jsp" enctype="application/x-www-form-urlencoded" method="post">
а не сгенеренная YII что в этом случае надо прописать в <form action="
?
andy_s
(Arekandrei)
5
См. http://www.yiiframework.com/doc/api/1.1/CController#createUrl-detail
Тут моё замечание про массив уже неактуально, т.к. передавать данному методу нужно просто controller/action:
<form action="<?php echo $this->createUrl('site/index'); ?>" enctype="application/x-www-form-urlencoded" method="post">
diman
(Dpanov76)
6
А вот за это офигенное спасибо!!!!!!!!!
странно, я так пробовал у меня почему то не работало, наверное что-то не правильно делал.
Сейчас все круто!
Огромное Вам спасибо - Andy!