2014-12-05 15 views
7

Laravel'i kullanmayı, Larcast'leri izlemeyi ve Dokümanlar'ı kullanmayı öğrendim, Eloquent'ın tarif edildiği bir derse rastladım ama takılıyorum hata:Illuminate Routing Controller, Denetleyici olarak kullanamazsınız. Ad zaten kullanımda olduğundan

at HandleExceptions->fatalExceptionFromError(
    array(
    'type' => '64', 
    'message' => 'Cannot use Illuminate\Routing\Controller as Controller because the name is already in use' 
) 
) 

Kafam çok karışık ve şimdi tam olarak sağlanan örnekleri kopyalanmış ama hala hata alıyorum. Laravel 5 kullanıyorum, bu yüzden belgesiz bir değişiklik olup olmadığını bilmiyorum ya da sadece yanlış bir şey yapıyorum. Sorunu çözen Google aramalarıyla ilgili hiçbir şey bulamadım. Bu yüzden, birisinin yardım edebileceğini umuyordum. İşte hatayı üretiyor kod şudur:

<?php namespace App\Http\Controllers; 

use Illuminate\Routing\Controller; 

use App\VarName; 

class VarController extends Controller { 

    public function Var() 
    { 
     $Variable = VarName::get(); 

     dd($Variable); 
    } 
} 

belgelerine göre, bu çalışması gerekir ve bunu çalışma yaptı izlenen videoda .. ne eksik?

: Bu anlamlı modeli uzanır ama şimdi onun deyişi bu yana neyin, her şeyi kırdı yeniden ve denenmiş kullanım hatası, zaten neden olmak gibi görünüyor beri

Ben, Kontrolör Sınıf silme çalıştı sadece Controller kullanmak Pluralizer.php hattında ErrorException 258: call_user_func(), 'takıldım ve don parametre 1 laravel iç işleyişini bir türlü, geçerli bir geri arama işlevi mb_strtolower bulunamadı veya geçersiz değil işlev adı

olmasını bekler Problemi anladım, belgelere göre kodumda yanlış bir şey görmüyorum, bu basit bir adım gibi görünüyor. Tüm yapmaya çalıştığım bir veritabanından bilgi almak, neler oluyor?

Yardımlarınız için şimdiden teşekkür ederiz!

+0

Bir App \ Http \ Kontrolörler \ Kontrolör sınıf tanımladınız mı? – Wrikken

+0

Varsayılan bir Denetleyici sınıfı var, ben onu yaratmadım ama onun var. –

+0

, karşılaştığım sorunla bir ilgisi var mı? –

cevap

16

adında bir Controller sınıfı zaten var çünkü Controller sınıf ad alanı var.

acil sorunu çözmek için, kullanım ekstresinde ad kısayolu değiştirebilirsiniz:

use Illuminate\Routing\Controller as BaseController; 

Ancak, belirli soruna yönelik çözüm muhtemelen sadece tamamen use Illuminate\Routing\Controller; ifadeyi kaldırmak istediğiniz olmasıdır.

Laravel 5'te, App\Http\Controllers\Controller sınıfı zaten Illuminate\Routing\Controller sınıfını genişletir. Amaç, tüm yeni denetleyicilerin daha sonra App\Http\Controllers\Controller sınıfını genişletmesidir. Örneğin, her ikisi de App\Http\Controllers\Controller sınıfını genişleterek varsayılan App\Http\Controllers\HomeController veya App\Http\Controllers\WelcomeController'a bir göz atın.

Özetle

, senin iki seçenek vardır:

// rename the class in the use statement 
namespace App\Http\Controllers; 
use Illuminate\Routing\Controller as BaseController; 

// note the name of the class being extended 
class VarController extends BaseController { 
    // snip 
} 

Ya

// extend the existing App\Http\Controllers\Controller class 
namespace App\Http\Controllers; 

class VarController extends Controller { 
    // snip 
} 
+0

Cevabınız için teşekkür ederim, Laravel 5'i denemekten vazgeçtim, kararlı bir sürüm olmasının beklenmesine karar verdim ve 4'ten farkları ile ilgili özel belgeleri vardı. hala 5 kadar kararlı, ama gelecekteki referans için bilmek iyi kadar bekleyin! –

+1

Bu laravel 5 içinde "üretmek" bir hata gibi görünüyor – itsazzad

İlgili konular