【问题标题】:Laravel 4 Blade: How to use custom models?Laravel 4 Blade:如何使用自定义模型?
【发布时间】:2013-11-12 13:20:08
【问题描述】:

通常在 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 文件中的某处调用它,如下所示:

回显配置::getBaseImagePath();

现在,我正在迁移到 .blade.php,我需要从模型中调用相同的函数,所以我在刀片的某处执行了此操作:

{{ Config::getBaseImagePath() }}

而且它不起作用(很奇怪,因为我知道刀片所做的就是将 {{ }} 标签转换为 php 标签)。谁能解释如何使这项工作?谢谢。

我得到的错误是:

调用未定义的方法 Illuminate\Config\Repository::getBaseImagePath()

【问题讨论】:

    标签: php laravel laravel-4 blade


    【解决方案1】:

    在您的代码中

    {{ Config::getBaseImagePath() }}
    

    它指向 laravel 的 Illuminate\Config\Repository 类,该方法不可用。更改名称或使用namespace。此外,您不能在 static 方法中使用 $this,而是可以使用

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

    【讨论】:

    • 感谢您的回答,是的,是因为命名空间中的类名称,忘记将其更改为其他内容
    • @user2002495,欢迎并很高兴它有所帮助:-)
    【解决方案2】:

    你正在使用 Laravel 类名 Config

    我不知道为什么它在 PHP 而不是 Blade 中有效,但它不应该。

    所以你有一些选择:

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

    2) 更改您的 Config 班级名称。

    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/';
        }
    
    }
    

    执行

    composer dump-autoload
    

    并使用它

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

    【讨论】:

      猜你喜欢
      • 2018-03-13
      • 2018-11-21
      • 2015-12-02
      • 1970-01-01
      • 2019-02-19
      • 2013-07-21
      • 2014-09-13
      • 2016-09-11
      • 2014-12-04
      相关资源
      最近更新 更多