2017-11-19 4 views
0

Laravel 5.5 Benutzerdefinierte BaseController nicht gefunden, obwohl es existiert. Haben die anderen Fragen auf StackOverflow bezüglich der BaseController nicht gefunden, aber sie beziehen sich auf die Standard BaseController, die in meinem Fall nicht das gleiche ist.Laravel 5.5 - Klasse Benutzerdefinierte BaseController nicht gefunden, aber existiert

Hier ist meine Implementierung

Controller.php

use Illuminate\Foundation\Bus\DispatchesJobs; 
use Illuminate\Routing\Controller as CheckController; 
use Illuminate\Foundation\Validation\ValidatesRequests; 
use Illuminate\Foundation\Auth\Access\AuthorizesRequests; 

class Controller extends CheckController 
{ 
    use AuthorizesRequests, DispatchesJobs, ValidatesRequests; 


} 

Individuelle Base (BaseController.php)

use App\Http\Controllers\Controller; 

class BaseController extends Controller 
{ 

    /** 
    * Setup the layout used by the controller. 
    * 
    * @return void 
    */ 
    public $data = array(); 

    public function __construct() 
    { 
     if (Sentinel::check()) { 
      // User is not logged in, or is not activated 
      $this->data['admin'] = Sentinel::getUser(); 
     } 
    } 

    protected function setupLayout() 
    { 
     if (!is_null($this->layout)) { 
      $this->layout = View::make($this->layout); 
     } 
    } 

} 

eine Klasse HomeCtontroller auf Custom BaseController

class HomeController extends BaseController { 

    protected $layout = 'master'; 

    public function main() 
    { 
     ... 
    } 

} 
namens Erweiterung

Und dann gibt es die folgenden Fehler

Symfony \ Component \ Debug \ Exception \ FatalErrorException (E_UNKNOWN) 
Class 'BaseController' not found 

jede Art von Zeigern schätzen würde.

Antwort

1

Ich glaube, Sie haben keine vollständigen Namespaces enthalten.

Stellen Sie sicher, in Base Sie haben:

namespace App\Http\Controllers; 

und in HomeController sicher, Sie verwenden:

use App\Http\Controllers\BaseController; 

alle diese Steuerungen in app/Http/Controllers Verzeichnis befinden sollte.

Wenn Sie sicher sind Sie gültige Verzeichnisse haben und Namespaces laufen composer dump-autoload in Konsole

+0

Ich glaube, alles, was er ist im Namensraum setzen tun muss. Sie müssen nicht aus demselben Namespace importieren. – FatBoyXPC

Verwandte Themen