2012-05-18 85 views
4

我有一個CakePHP模型,其中有一些函數可以很好地工作。現在我試圖編寫一個使用我已經編寫的一些函數的新函數。似乎應該很容易,但我無法弄清楚語法。我如何將這些函數稱爲我已經寫在新函數中的函數?CakePHP - 從同一模型中的另一個函數調用模型函數

例子:

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

結果:

Fatal error: Call to undefined function getHostFromURL() in /var/www/cake/app/Model/Mark.php on line 151

我也試過類似:

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

但得到了同樣的結果。

顯然我的函數比這更復雜(否則我只是重用它們),但這是一個很好的例子。

回答

4

你只需要調用其他的功能,如:

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

完美。我對所有這一切都感到陌生,無法弄清楚正確的語法,Google搜索也無濟於事。謝謝。 – Nick

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

+2

大。感謝您的額外信息。 – Nick

相關問題