1

ドメイン拡張子に基づいてサイトのロケールを変更する関数を作成しようとしていますが、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

前もって感謝します。

4

1 に答える 1

1

エラーメッセージはそれをかなり明確に示しています:無効なphp

有効な PHP をコーディングする必要があります (それが CakePHP であっても)! 適切な IDE を使用すると、エラーの概要がすぐにわかります。

var $uses ('App');

する必要があります

public $uses = array('App');

文書化されているように!

まだ PHP4 を使用している場合は、「public」ではなく「var」が必要です。

基本的なものが欠けているように見えるので、基本的なphpの本を読み始めるべきです。クラス宣言で動的メソッドを使用することもできません。

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

これにはコンストラクターを使用する必要があります。

public function __construct($id = false, $table = null, $ds = null) {
    parent::__construct($id, $table, $ds);

    $this->locale = $this->getLocale();
}
于 2012-09-05T08:53:42.240 に答える