У меня есть приложение на Facebook.
Facebook говорит, что мне нужно перенаправить на определенный URL-адрес facebook, чтобы пользователь мог дать разрешения приложению.
В настоящее время у меня есть файл просмотра phtml со следующим, который прекрасно работает:
<script type="text/javascript">
top.location.href = 'https://www.facebook.com/dialog/oauth?client_id=<?php echo $this->fbAppId?>&redirect_uri=<?php echo $this->serverUrl() . $this->baseUrl() . $this->url(array('controller' => 'index', 'action' => 'post-authorize'))?>&scope=publish_stream,user_birthday,user_about_me,user_activities,user_location';
</script>
Однако - я хочу попробовать другой подход, который сэкономит ресурсы и время процесса, не отображая представление, а просто перенаправляя его через заголовок Location (используя помощник действий перенаправителя или любой другой помощник действий как таковой) .
В скрипте вида я использую помощник вида ServerUrl
, чтобы сгенерировать абсолютный путь.
Как я могу сгенерировать абсолютный путь в контроллере, без использования помощника вида?
Я не вижу, как использование помощника вида внутри контроллера является хорошей практикой в паттерне MVC.
Примечание: перенаправление выполняется на Facebook, где URL моего собственного сайта добавляется в качестве параметра get. Так что абсолютный URL мне нужен, это мой собственный, а не фейсбук. Это означает, что использование метода setUseAbsoluteUri
мне не поможет, так как будет работать с URL-адресом Facebook, а не с моим.