2014-12-05 7 views
7

Larcasts를 사용하고 Larcasts를보고 문서를 사용하는 방법을 배웠습니다. 나는 Eloquent가 설명되어 있지만 내가 붙어있는 교훈을 발견했습니다. 오류 :이름이 이미 사용 중이므로 Illuminate Routing Controller를 컨트롤러로 사용할 수 없습니다.

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

매우 혼란스럽고 정확하게 제공된 예제를 복사했지만 여전히 오류가 발생합니다. 저는 Laravel 5를 사용하고 있습니다. 그래서 문서화되지 않은 변경이 있었는지 또는 단순히 잘못된 것을 수행하고 있는지 알 수 없습니다. 문제를 해결하는 Google 검색과 관련된 항목을 찾지 못했습니다. 그래서 누군가가 도움을 얻을 수 있기를 바랍니다. 다음은 오류를 생성하는 코드입니다

<?php namespace App\Http\Controllers; 

use Illuminate\Routing\Controller; 

use App\VarName; 

class VarController extends Controller { 

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

     dd($Variable); 
    } 
} 

이 문서에 따르면,이 작업을해야한다, 그리고 내가 일을했다, 감시 비디오에 .. 내가 뭘 놓친 거지?

: 그것은 웅변 모델을 확장하지만 지금은 그 말 이후가 뭐죠, 모든 부러 다시 설치하고 시도 사용 오류에 이미 야기 된 것으로 판단하기 때문에

내가, 컨트롤러 클래스를 삭제 시도에 불과 컨트롤러를 사용 Pluralizer.php 라인 ErrorException 258 : call_user_func()은, '나는 붙어 나는 돈 매개 변수 1 Laravel의 내부 동작에 대한 이해 넘어 유효한 콜백 기능 mb_strtolower이 발견되거나 유효하지 함수 이름

있을 것으로 기대 설명서에 따르면 문제를 이해하지 못한다. 내 코드에 아무런 문제가 없다.이 간단한 단계처럼 보인다. 내가하려는 것은 데이터베이스에서 정보를 검색하는 것입니다. 어떻게됩니까?

미리 도움을 청하십시오!

+0

당신이 앱 \ HTTP를 \ 컨트롤러 \ Controller 클래스를 정의? – Wrikken

+0

기본 Controller 클래스가 있는데, 만들지는 않았지만 컨트롤러 클래스가 있습니다. –

+0

내가 겪고있는 문제와 관련이 있습니까? –

답변

16

App\Http\Controllers 네임 스페이스에 이미 Controller 클래스가 있으므로 use Illuminate\Routing\Controller; 문이 실패합니다.

는 즉시 문제를 해결하려면 사용 명세서에 네임 스페이스 바로 가기를 변경할 수 있습니다

use Illuminate\Routing\Controller as BaseController; 

그러나, 특정 문제에 대한 해결책은 당신이 아마 전부 use Illuminate\Routing\Controller; 문을 제거 할 것입니다.

Laravel 5에서 App\Http\Controllers\Controller 클래스는 이미 Illuminate\Routing\Controller 클래스를 확장합니다. 새로운 컨트롤러는 모두 App\Http\Controllers\Controller 클래스를 확장해야합니다. 예를 들어 App\Http\Controllers\HomeController 또는 App\Http\Controllers\WelcomeController은 모두 App\Http\Controllers\Controller 클래스를 확장하므로 기본값을 사용하십시오.

요약

, 당신의 두 가지 옵션은 다음과 같습니다

// 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 
} 

또는

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

class VarController extends Controller { 
    // snip 
} 
+0

답변 해 주셔서 감사합니다. Laravel 5를 사용해 보았습니다. 안정 버전이 될 때까지 기다렸다가 4 번과의 차이점에 대한 구체적인 문서를 가지고있었습니다. 문제없이 4 번을 사용 했으므로 여전히 5가 안정 될 때까지 기다리십시오, 그러나 미래의 참고로 알아두면 좋습니다! –

+1

laravel 5의': generate'에있는 버그 인 것 같습니다. – itsazzad