Laravel 5.0, Cannot redeclare class App\models\Category
Ich habe vor kurzem aktualisiert mein Projekt von laravel 4.2 auf laravel 5.0 und habe es mit mehrere Fehler.
Ich nicht definieren namespaces in version 4.2, aber wie vorgeschlagen hier
Habe ich begonnen, bei der Definition von namespaces in meinem code. Ich weiß nicht, ob das problem, das ich bin vor ist verwandt mit, aber es fiel in der Mitte dieses Prozesses.
Ich erhalte die folgende Fehlermeldung beim ausführen des Codes:
exception 'Symfony\Component\Debug\Exception\FatalErrorException' with
message 'Cannot redeclare class App\models\Category' in
/Users/yash/summers/lightsCameraDinner/lcd_updated/app/models/Category.php:19
Hier ist meine Category.php:
<?php namespace App\models;
use Eloquent;
class Category extends Eloquent {
protected $table = 'categories';
protected $guarded = array('id');
//Defining 'Many to Many' Relationship with 'VendorProfile' Model
public function clients() {
return $this->belongsToMany('Client');
}
//Defining 'One to Many' Relationship with 'Job' Model
public function jobs() {
return $this->hasMany('Job');
}
}
Suchte ich die gleichen Fehler auf ALSO, aber nicht finden.
Dies ist die Funktion in meinem controller, der aufgerufen wird, auf "/" Weg.
public function getIndex() {
$categories = Category::all();
$messages = Message::groupBy('receiver_id')
->select(['receiver_id', \DB::raw("COUNT('receiver_id') AS total")])
->orderBy('total', 'DESC')
->get()
->toArray();
$vendors_ids = array();
foreach ($messages as $message) {
$vendors_ids[] = $message['receiver_id'];
}
$clients = Client::where('profile_type', 'VendorProfile')
->where('is_activated', 1)
->whereIn('id', $vendors_ids)
->limit(4)
->get();
if($clients->count() < 4) {
$clients = Client::where('profile_type', 'VendorProfile')
->where('is_activated', 1)
->limit(4)
->get();
}
Log::info('getIndex function of PagesController');
$this->layout = View::make('layouts.homepage');
$this->layout->content = View::make('pages/index', ['categories' => $categories, 'clients' => $clients]);
return $this->layout;
}
Lassen Sie mich wissen, wenn Sie etwas anderes benötigen vom code. Ich habe versucht, um herauszufinden, die Lösung für einige Zeit jetzt.
Category Class
im gleichen Namensraum irgendwo?Nein, ich nicht. Ich hatte alles in den globalen Namensraum vor, so hätte ich den Fehler damals nur, denke ich. Zweitens ist diese Kategorie in App\Modelle namespace, und ich habe keine andere Klasse mit dem Namen Modell in diesem namespace.
Die Fehler-Punkte Kategorie.php:19, das ist, wo die Datei endet. Was bedeutet das?
Ich habe gerade ein Modell mit
artisan make:model
. Mein Modell sieht anders aus als deins. namespace App;
. Und use Illuminate\Database\Eloquent\Model;
. Könnte es sein,. Versuchen Sie es.Seltsam. Ich geändert es zu
namespace App
, aber jetzt PagesController sagt App\Category
nicht gefunden.InformationsquelleAutor Yashasvi | 2015-05-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ist es, weil Sie generiert haben, ein controller und dann schleppte es in einen Unterordner.
Sie müssen äther ändern Sie den namespace auf der rechten Seite ein oder erstellen Sie Ihre controller richtig.
oder ändern Sie den namespace zu
(wenn api ist der name des Ordners, der controller ist in)
InformationsquelleAutor Adam
Ich weiß die Frage ist alt, aber ich werde beantworten, was für mich gearbeitet hat.
Ich bin vor kurzem Tests Laravel 4.2-5.0-Update auf einem git-Zweig. Ich hatte das gleiche problem mit einem Modell-Klasse mit dem Namen Megaloquent, erstreckt sich Eloquent in Laravel 4.2, die jetzt Modell.
Weil ich war versucht, es zu erhalten, zu arbeiten, ohne namespace am Anfang habe ich noch die app/subdirecties in der classmap des Komponisten.json
Und nach viel Mühe, es zu arbeiten, habe ich beschlossen zu gehen mit Namensraum in den Controllern und Models, die finde ich nun mehr strukturiert und konkretisiert. Sie sollten entfernen Sie die app/Controller-Modelle-Bibliotheken von classmap seit psr-4 bereits lädt alle Klassen in app/{Unterverzeichnisse}/classes, und classmap autoload macht es zweimal geschehen. Erhalten Sie, nur dieses nach dem entfernen Sie
Dass Laravel interne Konfiguration, die Sie können nicht wirklich kontrollieren, aber entfernen hat den Fehler behoben für mich.
InformationsquelleAutor KeitelDOG