2015-04-29 17 views
5

laravel 5 üzerinde isteği yeni doğrulama denetleyicisi oluşturmak için laravel docs php artisan make:request StoreBlogPostRequest üzerinde örnek kod çalıştıran, ben sorunun ne olduğundan emin değilimHata koşu yapmak:

[RuntimeException]      
Unable to detect application namespace. 

, ben şu hatayı olsun ve bazı arama yaptım, ama hiçbir şey gerçekten bu hatayı açıklamıyor. Herhangi bir fikir? dokümanlardan laravel 5 örnek kod çoğu, bu ad alanında

laravel 5'te

cevap

9

, bir "uygulama" klasöründe Varsayılan olarak app/

saklanan tek ad altında PHP dosya topluluğunun, ve App\. Örneğin, uygulamanızdaki bir denetleyici böyle görünebilir.

namespace App\Http\Controller; 
class MyController 
{ 
    //... 
} 

(Eğer make:request komutu kullandığınızda yani) laravel kodu üretir, bu uygulama ad (o artisan app:name komutla ad değiştirmek mümkün) ne olduğunu bilmek gerekir. Bazı nedenlerden dolayı, sisteminizde, Laravel 5 isim alanını algılayamaz.

Eğer namespace

#File: vendor/laravel/framework/src/Illuminate/Console/AppNamespaceDetectorTrait.php 
protected function getAppNamespace() 
{ 
    $composer = json_decode(file_get_contents(base_path().'/composer.json'), true); 

    foreach ((array) data_get($composer, 'autoload.psr-4') as $namespace => $path) 
    { 
     foreach ((array) $path as $pathChoice) 
     { 
      if (realpath(app_path()) == realpath(base_path().'/'.$pathChoice)) return $namespace; 
     } 
    } 

    throw new RuntimeException("Unable to detect application namespace."); 
} 

Sen laravel sizin composer.json dosyasına bakan ve thefirst geçerli psr-4 ad bakarak ad algılar olduğunu göreceksiniz algılar laravel 5 çekirdek kodunun kısmına bakarsanız.

Benim tahminim sizin composer.json dosya ad alanında geri

"autoload": { 
    "classmap": [ 
     "database" 
    ], 
    "psr-4": { 
     "App\\": "app/" 
    } 
}, 

Ekle eksik olduğunu ve gitmek için iyi olacak.

İlgili konular