CakePHP - 从同一模型中的另一个函数调用模型函数

时间:2012-05-18 22:26:54

标签: php cakephp model

我有一个CakePHP模型,其中有一些功能正常运行。现在我正在尝试编写一个新函数,它使用了我已编写的一些函数。似乎应该很容易,但我无法弄清楚语法。如何调用我已经在新的函数中编写的这些函数?

示例:

<?php
public function getHostFromURL($url) {
    return parse_url( $http.$url, PHP_URL_HOST );
}
public function getInfoFromURL($url) {
    $host = getHostFromURL($url);
    return $host;
}

结果:

  

致命错误:在第151行的/var/www/cake/app/Model/Mark.php中调用未定义函数getHostFromURL()

我也尝试过这样的事情:

<?php
public function getHostFromURL($url) {
    return parse_url( $http.$url, PHP_URL_HOST );
}
public function getInfoFromURL($url) {
    $host = this->Mark->getHostFromURL($url);
    return $host;
}

但得到了相同的结果。

显然我的函数比这复杂得多(否则我只是重用它们),但这是一个很好的例子。

2 个答案:

答案 0 :(得分:5)

如果该功能在同一个控制器中,则使用

访问功能

$this->functionName语法。

您的语法错误如下:

public function getInfoFromURL($url) {
    $host = this->Mark->getHostFromURL($url);
    return $host;
}

应该是:

public function getInfoFromURL($url) {
        $host = $this->getHostFromURL($url);
        return $host;
    }

如果getFromHostUrl方法在当前类中。 http://php.net/manual/en/language.oop5.php

答案 1 :(得分:4)

您只需要调用另一个函数,如:

$host = $this->getHostFromURL($url);