Я интегрировал GeoIP в мой CakePHP.Теперь я должен вызвать его из моего файла просмотра.Я сделал в своем контроллере такую функцию:
function getCountry($ip)
{
$this->GeoIP->countryName($ip);
}
GeoIP
является включенным компонентом.
Когда я написал в моем представлении что-то вроде этого: $this->GeoIP->countryName('8.8.8.8')
это работает хорошо, ноНасколько я помню, это неправильно для архитектуры MCV.Поэтому правильный способ - вызвать requestAction
для моего контроллера.
Здесь у меня есть 2 проблемы: я должен сделать это в функции php, которая находится в файле вида:
// MyView.php:
<?php
function Foo()
{
$this->GeoIP->countryName(...);
}
?>
Первая ошибка в том, что $this
недоступна внутри функции, вторая - как вызвать getCountry
из моего компонента и передать нужный IP-адрес в $ip
?
Я пробовал:
echo $this->requestAction('Monitoring/getCountry/8.8.8.8');
Monitoring
- это имя контроллера.
Но это ничего не возвращает без каких-либо ошибок.Как правильно и как это вызвать в функции?