Php Laravel 4刀片:如何使用自定义模型?

Php Laravel 4刀片:如何使用自定义模型?,php,laravel,laravel-4,blade,Php,Laravel,Laravel 4,Blade,通常在Laravel中,我通过创建以下内容来调用模型: class Config extends Eloquent { protected function getBaseUri() { return sprintf( "%s://%s%s", isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off' ? 'https' : 'http', $_SERVER['HTTP_HOST'], '/projec

通常在Laravel中,我通过创建以下内容来调用模型:

class Config extends Eloquent {

protected function getBaseUri() {
    return sprintf(
        "%s://%s%s", isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off' ? 'https' : 'http', $_SERVER['HTTP_HOST'], '/project/public/assets/'
    );
}

public static function getBaseImagePath() {
    return $this->getBaseUri() . 'image/';
}

}
并在php文件中的某个地方调用它,如下所示:

echo配置::GetBaseMagePath()

现在,我正在迁移到.blade.php,我需要从模型中调用相同的函数,所以我在blade中的某个地方做了如下操作:

{{Config::GetBaseMagePath()}}

而且它不起作用(够奇怪了,因为我知道blade所做的就是将{{}}标记转换为php标记)。有人能解释一下如何做到这一点吗?谢谢

我得到的错误是:

调用未定义的方法 照亮\Config\Repository::GetBaseMagePath()

在代码中

{{ Config::getBaseImagePath() }}
它指向的是laravel的
illumb\Config\Repository
类,该类中没有此方法。更改名称或使用
命名空间
。另外,您不能在
静态方法中使用
$this
,而是可以使用

public static function getBaseImagePath() {
    return static::getBaseUri() . 'image/';
}
在代码中

{{ Config::getBaseImagePath() }}
它指向的是laravel的
illumb\Config\Repository
类,该类中没有此方法。更改名称或使用
命名空间
。另外,您不能在
静态方法中使用
$this
,而是可以使用

public static function getBaseImagePath() {
    return static::getBaseUri() . 'image/';
}

您正在使用Laravel类名
Config

我不知道为什么它可以在PHP中工作而不能在Blade中工作,但它不应该

所以你有一些选择:

1) 在app/Config/app.php中更改
Config
Laravel别名

2) 更改您的
配置
类名

3) 为类创建命名空间:

<? namespace MyName\Services

class Config extends Eloquent {

    protected function getBaseUri() {
        return sprintf(
            "%s://%s%s", isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off' ? 'https' : 'http', $_SERVER['HTTP_HOST'], '/project/public/assets/'
        );
    }

    public static function getBaseImagePath() {
        return $this->getBaseUri() . 'image/';
    }

}
并使用它

{{ \MyName\Services\Config::getBaseImagePath() }}

您正在使用Laravel类名
Config

我不知道为什么它可以在PHP中工作而不能在Blade中工作,但它不应该

所以你有一些选择:

1) 在app/Config/app.php中更改
Config
Laravel别名

2) 更改您的
配置
类名

3) 为类创建命名空间:

<? namespace MyName\Services

class Config extends Eloquent {

    protected function getBaseUri() {
        return sprintf(
            "%s://%s%s", isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off' ? 'https' : 'http', $_SERVER['HTTP_HOST'], '/project/public/assets/'
        );
    }

    public static function getBaseImagePath() {
        return $this->getBaseUri() . 'image/';
    }

}
并使用它

{{ \MyName\Services\Config::getBaseImagePath() }}

谢谢你的回答,是的,这是因为名称空间中的类名忘了将其更改为soemthingelse@user2002495,欢迎并很高兴它有帮助:-)谢谢你的回答,是的,这是因为名称空间中的类名忘了将其更改为soemthingelse@user2002495,欢迎并很高兴它起了作用:-)