Laravel 5.1.20中的配置问题

时间:2015-12-11 14:36:11

标签: php laravel laravel-5.1

我的网站在localhost中看起来很完美,但是当我迁移到Production服务器时,它显示在错误:

之下
The use statement with non-compound name 'Config' has no effect

我在我的视图文件中使用了我的配置变量,如下所示:

@extends('layout.default')
@section('content')
    <section>
    <?php
    use \Config;
    ?>      
        <div id="content-wrap">
            <div class="container">
                <img src="<?php echo Config::get("app.images_url")?>assets/data/icon-s1.png" alt="service">
            </div>
        </div>
    </body>
    </section>
@stop

本地主机: Laravel 5.1.20和PHP版本5.5.9

生产: Laravel 5.1.20和PHP版本5.5.30

3 个答案:

答案 0 :(得分:2)

您可以在不首先声明的情况下使用该类。因此,首先删除use \Config,然后将其添加到src

{{ Config::get('app.imagss_url`) }}

你应该尽可能使用刀片代码而不是PHP。

答案 1 :(得分:2)

由于在非命名空间代码中使用了非复合命名空间,因此在PHP的更高版本中会出现此错误。

基本上,当您在根命名空间中时,如果使用完全限定的命名空间访问根命名空间中的某些内容,PHP会抱怨。

要解决此问题,您可以执行以下操作之一:

  1. 删除use \Config;

  2. use \Config;更改为use Config;

  3. 使用Service Injection in Blade Templates

  4. 从控制器将路径值注入您的刀片模板(从而完全取消对模板中配置类的引用)

  5. 最好的解决方案可能是最后一个。模板仅用于显示 - 传递您想要显示的值,而不是引入任何逻辑。这可以使您的代码更易于维护。

答案 2 :(得分:2)

Laravel 5中有一个名为config

的辅助方法

您可以像这样使用它:

@extends('layout.default')
@section('content')
    <section>   
        <div id="content-wrap">
            <div class="container">
                <img src="{!! config('app.images_url').'/assets/data/icon-s1.png' !!}" alt="service">
            </div>
        </div>
    </section>
@stop