2016-06-10 16 views
2

Ich versuche, Mitarbeiter des Unternehmens mit der Methode im Modell zu bekommen. Aber ich bekomme diesen Fehler.Laravel 5 Modell-Klasse nicht gefunden - hasMany

Fatal error: Class 'Employee' not found (View: /home/vagrant/Code/laravel/resources/views/frontpage.blade.php) 

Hier ist mein Controller:

namespace App\Http\Controllers; 
use Illuminate\Http\Request; 

use App\Http\Requests; 
use App\Company; 
use App\Employee; 

    public function index() 
    { 
     $data = Company::get(); 
     $data = array(
      'companies' => $data, 
     ); 


     return view('frontpage', $data); 
    } 

Und hier ist meine Modelle: erste ist Company.php

namespace App; 

use Illuminate\Database\Eloquent\Model; 
use App\Employee; 

class Company extends Model{ 

    protected $table = 'company'; 

    public function employee() 
    { 
     return $this->hasMany('Employee', 'company_id', 'id'); 
    } 
} 

Hier ist das andere Modell, Employee.php

namespace App; 

use Illuminate\Database\Eloquent\Model; 

class Employee extends Model{ 

    public $table = "employee"; 

} 

Und hier ist die Ansicht

@extends('layouts.master') 

@section('content') 

<div> 
    @foreach ($companies as $company) 
     <p>This is company {{ $company->name }}</p> 
     <p>{{ print_r($company->employee) }}</p> 
    @endforeach 
</div> 

@stop 
+0

Warum Sie nicht passieren 'companies' direkt wie so von der Steuerung ' public function Index() { $ Firmen = Firma :: get(); Rückansicht ("Startseite", kompakt ("Unternehmen")); } '? – linuxartisan

Antwort

6

Bei den Beziehungsdefinitionen müssen vollständig qualifizierte Klassennamen übergeben werden.

ersetzen

return $this->hasMany('Employee', 'company_id', 'id'); 

mit entweder

return $this->hasMany('App\Employee', 'company_id', 'id'); 

oder

return $this->hasMany(Employee::class, 'company_id', 'id'); 
Verwandte Themen