2015-12-11 2 views
1

Моего сайта выглядит совершенным в локальном, но когда я мигрировал на сервер Production его отображение ниже ошибок:Config проблема в Laravel 5.1.20

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 

Localhost: Laravel 5.1.20 и PHP версии 5.5.9

Производство: Laravel 5.1.20 и PHP версии 5.5.30

+0

Это ошибка отображается в браузере или в журнале ошибок? Потому что, если он отображается в браузере, он задает вопрос: ** Почему у вас включен режим отладки? ** – Bogdan

+0

Нет. Я не видел эту ошибку в журнале ошибок. – okconfused

ответ

2

Вы можете использовать класс, не объявляя его первым. Так удалить use \Config первые и им добавить это в src:

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

Вы должны использовать тег лезвия вместо PHP, когда вы можете.

+1

«\» на самом деле не нужно, поскольку представления не являются Namespaced. – Bogdan

+0

Полезно знать, спасибо! – Alex

2

Эта ошибка возникает в более поздних версиях PHP из-за использования не-составного пространства имен в коде, отличном от имен.

В основном, если вы находитесь в корневом пространстве имен, PHP жалуется, если вы получаете доступ к чему-то в корневом пространстве имен, используя полностью квалифицированное пространство имен.

Чтобы исправить это, вы можете сделать одно из следующих действий:

  1. удалить use \Config;

  2. изменение use \Config; в use Config;

  3. использование Service Injection in Blade Templates

  4. впрыскивать путь значение в вашем шаблоне клика fr (таким образом, полностью исключая ссылку на класс конфигурации в вашем шаблоне)

Лучшее решение, вероятно, является последним. Шаблоны предназначены только для отображения - передайте значения, которые вы хотите отобразить, и не вводите какую-либо логику. Это улучшает ваш код.

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 
Смежные вопросы