2014-10-23 3 views
2

클래스에 별칭을 등록하려고하는데 Laravel이 클래스를 찾을 수 없으므로 컨트롤러에서 직접 클래스를 참조 할 수 있으므로 올바르게로드 된 것입니다. 여기 Laravel 별칭이 클래스를 찾을 수 없습니다.

내 코드입니다 : 이것은 내가 내 컨트롤러에 전화를 시도하고 무엇

'aliases' => array(
     'FrontendAssets' => 'Lib\FrontendAssets', 
) 

클래스 내가

class FrontendAssets 
{ 
    /** 
    * Styles array to include on every admin page 
    * @var array 
    */ 
    protected static $styles = []; 
    /** 
    * Scripts array to include on every admin page 
    * @var array 
    */ 
    protected static $scripts = []; 

    public static function styles() 
    { 
     return static::assets(static::$styles); 
    } 

    public static function addStyle($style) 
    { 
     static::$styles[] = $style; 
    } 

    public static function scripts() 
    { 
     $scripts = static::assets(static::$scripts); 

     return $scripts; 
    } 

    public static function addScript($script) 
    { 
     static::$scripts[] = $script; 
    } 

    /** 
    * @param $assets 
    * @return array 
    */ 
    public static function assets($assets) 
    { 
     return array_map(function ($asset) 
     { 
      return $asset; 
     }, array_unique($assets)); 
    } 
} 

별칭을 만들려고 노력하고

FrontendAssets::assets(); 

이름 공간을 추가하려고했지만 여전히 기쁨이 아닙니다.

내가 내 컨트롤러에 \FrontendAssets::assets(); 를 사용하는 경우 내가 그것을 도전적으로 클래스가 발견 될 수 있는지 확인

답변

4

첫 방송 composer dump-autoload을로드 알고 그래서이 클래스를 사용할 수 있습니다. 이제

, 당신은 예를 들어, 이름 공간에서 컨트롤러가 : 당신이 FrontendAssets 클래스에 액세스하려면

<?php 

namespace App\Http\Controllers; 

class YourController { 

} 

당신이 백 슬래시를 선도 추가 할 필요를, 그래서 FrontendAssets::assets();가 작동하지 않습니다하지만 \FrontendAssets::assets(); 작동합니다.

<?php 

namespace App\Http\Controllers; 

use FrontendAssets; 

class YourController { 

} 

을하고 지금은 FrontendAssets::assets();를 사용할 수 있습니다 :

당신은 다른 방법이 클래스를 가져올 수 있습니다. 불분명하다면 설명을 구할 수도 있습니다. How to use objects from other namespaces and how to import namespaces in PHP

5
php artisan config:clear 

도와주세요. 별칭이 app config에 정의되어 있기 때문에 이전에 config:cache으로 설정 파일을 캐시 한 경우.