CakePHP 1.3应用程序模型函数


CakePHP 1.3 app Model functions

我正试图创建一个基于域扩展更改网站区域设置的函数,但当我尝试将AppModel中的变量值设置为函数时,我遇到了一个错误。我不确定我做错了什么。

仅供参考:$_SERVER['HTTP_HOST']='.de';

class AppModel extends Model {
//var $locale = 'de_de'; // Example of what I need
var $locale = $this->getLocale();
    function getLocale() {
        $domain = explode('.', $_SERVER['HTTP_HOST']); 
        if ($domain[1] == 'de') {
            return 'de_de';
        } else {
        return 'en_gb';
        }
    }
}

返回错误:

Parse error: syntax error, unexpected T_VARIABLE in /var/www/devsite/v1/site/app/app_model.php on line 7 Call Stack: 0.0002 671648 1. {main}() 
/var/www/devsite/v1/site/app/webroot/index.php:0 0.0255 5883776 2. Dispatcher->dispatch() /var/www/devsite/v1/site/app/webroot/index.php:83 0.0264 5949592 3. 
Dispatcher->__getController() /var/www/devsite/v1/site/cake/dispatcher.php:116 0.0264 5949672 4. Dispatcher->__loadController() 
/var/www/devsite/v1/site/cake/dispatcher.php:385 0.0265 5951760 5. App->import() /var/www/devsite/v1/site/cake/dispatcher.php:413 0.0265 5953552 6. 
App->__settings() /var/www/devsite/v1/site/cake/libs/configure.php:916 0.0265 5954000 7. App->import() 
/var/www/devsite/v1/site/cake/libs/configure.php:1171 0.0265 5957624 8. App->__find() /var/www/devsite/v1/site/cake/libs/configure.php:955 0.0268 5984264 9. 
App->__load() /var/www/devsite/v1/site/cake/libs/configure.php:1019 0.0269 6047416 10. require('/var/www/devsite/v1/site/app/app_controller.php') 
/var/www/devsite/v1/site/cake/libs/configure.php:1060 0.0269 6047560 11. App->import() /var/www/devsite/v1/site/app/app_controller.php:8 0.0270 6051456 12. 
App->__find() /var/www/devsite/v1/site/cake/libs/configure.php:955 0.0270 6052240 13. App->__load() /var/www/devsite/v1/site/cake/libs/configure.php:1036 
0.0272 6164128 14. require('/var/www/devsite/v1/site/cake/libs/sanitize.php') /var/www/devsite/v1/site/cake/libs/configure.php:1060 0.0272 6164416 15. 
App->import() /var/www/devsite/v1/site/cake/libs/sanitize.php:2 0.0273 6165128 16. App->__settings() /var/www/devsite/v1/site/cake/libs/configure.php:916 0.0337 8579264 17. 
App->import() /var/www/devsite/v1/site/cake/libs/configure.php:1149 0.0337 8582864 18. App->__find() /var/www/devsite/v1/site/cake/libs/configure.php:955 0.0338 8583952 19. 
App->__load() /var/www/devsite/v1/site/cake/libs/configure.php:1019

提前谢谢。

错误消息非常清楚地表明:php 无效

您仍然需要编写有效的PHP代码(即使它是cakePHP)!使用合适的IDE会立即列出错误:

var $uses ('App');

应该是

public $uses = array('App');

如文件所示!

如果您仍在PHP4上,则需要"var"而不是"public"

你真的应该开始阅读基本的php书籍,因为你似乎缺乏基本的东西。在类声明中也不能使用动态方法:

 var $locale = $this->getLocale();

您需要为此使用构造函数:

public function __construct($id = false, $table = null, $ds = null) {
    parent::__construct($id, $table, $ds);
    $this->locale = $this->getLocale();
}