2017-04-02 1 views
1

Ich portiere derzeit eine alte Website mit Laravel 4.1 bis Laravel 5.4. Schon viele kleinere Änderungen implementiert (Fehlerprotokolle hilft), aber ich bin mit dem folgenden Modell Verwendung stecken:Laravel 5.4 eloquentes Modell laden, Portieren von 4.1 Projekt

namespace App; 


class navire extends Eloquent 
{ 
protected $table = 'navire'; 

public function user() 
{ 
    return $this->belongsTo('user'); 
} 

public function getId() 
{ 
    return $this->id; 
} 

} 

ich es versuche, von einem Controller zu nennen:

namespace App\Http\Controllers; 

use Illuminate\Support\Facades\Input; 

use App\navire; 

class UserController extends Controller 
{ 
    public function somefunc() 
    { 
     // .... 

     $navire = \navire::where('user_id',$user->id)->get()->take(1); 


    } 

} 

viele Dinge versucht, mit „verwenden ...“ oder mit einem \ am Anfang nennt, hat nichts funktioniert bisher

exemples von Fehlern:

local.ERROR: exception 'Symfony\Component\Debug\Exception\FatalErrorException' with message 'Class 'App\Http\Controllers\navire' not found' in /home/user/www/app/Http/Controllers/UserController.php:30 

local.ERROR: exception 'Symfony\Component\Debug\Exception\FatalErrorException' with message 'Class 'App\Http\Controllers\navire' not found' in /home/user/www/app/Http/Controllers/UserController.php:30 

local.ERROR: exception 'Symfony\Component\Debug\Exception\FatalErrorException' with message 'Class 'App\navire' not found' in /home/user/www/app/Http/Controllers/UserController.php:32 

local.ERROR: exception 'Symfony\Component\Debug\Exception\FatalErrorException' with message 'Class 'navire' not found' in /home/user/www/app/Http/Controllers/UserController.php:32 

Ich habe bereits dumpautoload genannt.

+0

Entfernen Sie aus der Klasse, wenn Sie es anrufen –

+0

@LeaTano ohne die Verwendung App \ navire: 'Klasse' App \ Http \ Controllers \ navire 'nicht gefunden, mit:' Class 'App \ Eloquent' nicht gefunden ' –

+0

class navire erweitert \ Eloquent behebt das Problem. thx :) –

Antwort

1

verwenden Sie entweder $navire = \App\navire::where('user_id',$user->id)->get()->take(1); oder wie Sie bereits das Modell $navire = navire::where('user_id',$user->id)->get()->take(1); importiert haben, d. H. Ohne den Schrägstrich vor.

Eine andere Sache, können Sie einfach first() anstelle von verwenden. So $navire = \App\navire::where('user_id',$user->id)->first();

+0

Verwendung direkt Navire :: wo führt zu Nachricht 'Class' App \ Navire 'nicht gefunden' Fehler. –

+0

@NicoAD haben Sie App \ navire? –

+0

jetzt bekomme ich die Nachricht 'Class' Authenticatable 'nicht gefunden'. Jedes Mal, wenn ich ein Problem behebe, erhalte ich ein neues. Ich erinnere mich, dass was ich zuerst in Laravel 4 mochte, was die saubere und elegante Lösung für Autoload. jetzt mit 5.4 ist es ein Durcheinander .. –