Ich habe erfolglos versucht, einen Fehler in einer Laravel 5.2 App (Carfreak) zu beheben.Fehlerbehebung bei der Referenzierung eines Modells in einem Laravel-Controller
FatalErrorException in PropertyController.php line 85: Class 'App\Models\CarModel' not found
Ich habe den Standard-Benutzermodell in einen Ordner app/Modelle und machte die erforderlichen Änderungen so bewegt, dass es funktioniert gut.
Jetzt habe ich einen neuen Controller CarController
, und ein neues Modell, CarModel
, die gerade nicht funktionieren. Es scheint ein so einfaches Problem mit Namespaces zu sein, aber ich kann es nicht lösen.
- ist das Modell im Ordner Modelle? Ja.
carfreak\app\Models\CarModel.php
- ist der Controller-Namespace korrekt? Ja ...
namespace carfreak\Http\Controllers;
- referenziert der Controller das Modell? Ja ...
use App\Models\CarModel;
- ist der Modell-Namespace korrekt? Ja ...
namespace carfreak\Models;
Ich bin in der Lage verschiedene Versionen des Fehlers zu erstellen, indem Sie mit den CarController
spielen, aber keine Permutation ich gearbeitet hat denken können.
EDIT: Controller und Modell hinzugefügt ...
EDIT: Mehr Details hinzugefügt:
Die Ironie dabei ist, dass ich kann php artisan make:model sanityCheck
und es wird ein Modell in der \app
Wurzel erstellen (dh nicht in app \ models) ... und dieses Modell kann als gut bezeichnet werden. Wenn ich meinen CarController wieder in den Stammordner zurücksetze und seinen Namespace entsprechend ändere, funktioniert es immer noch nicht. Es ist fast so, als hätte ich einen dummen Schreibfehler im Klassennamen oder so, aber ich habe Klassennamen in meinen Dateinamen, Klassen-Deklaration, "Benutze" -Deklarationen usw. kopiert und eingefügt. immer noch. nicht. Arbeit. Aargh!
// diese carmodel ist
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class CarModel extends Model
{
//
/**
* The attributes that are mass assignable.
* @var array
*/
protected $fillable = [
'colourOfCar',
];
}
// diese carController ist
<?php
namespace carfreak\Http\Controllers;
use Illuminate\Http\Request;
//use \carfreak\app\Models\CarModel;
use App\Models\CarModel;
class CarController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function __construct()
{
$this->middleware('auth');
}
public function store(Request $request)
{
// validate the data
$this->validate($request, array(
'CarColour' => 'required|max:50'
));
// store in the database
$newCar = new CarModel;
dd($request);
}
}
Ihre Post 'CarModel' Datei – jaysingkar
Ihr auch' CarController' – jaysingkar
Zwei Worte Datei, 'Namespace' und' Use' .... die Datei korrekt benannt ist und in der richtigen Lage Pfad. Das schließt Gehäuse mit ein, wenn Sie einen Linux-Server haben. – ArtisticPhoenix