2016-04-11 6 views
0

I以下のリポジトリを持っている:モデルを呼び出しているリポジトリが動作していないモデルから取得

<?php 

namespace App\Repositories; 

use App\Employee; 

class EmployeeRepository 
{ 

    protected $employee; 

... 

    public function getAllManagersList(Employee $employee) 
    { 
     $managers = $employee->getAllManagers(); 
     $result = Array(); 
     foreach ($managers as $manager) 
     { 
      $result[$manager->id] = $manager->first_name . ' ' . $manager->last_name; 
     } 
     return result; 
    } 


} 

<?php 

namespace App; 

use Illuminate\Database\Eloquent\Model; 
use DB; 

class Employee extends Model { 

    protected $table = 'employees'; 

    public $timestamps = true; 

... 

    public function getAllManagers() 
    { 
     $managers = DB::table('employees')->select(['id','first_name','last_name'])->orderBy('last_name')->where('is_manager','=','1')->get(); 
     return $managers; 
    } 


} 

そして、私のコントローラはこれでそれを呼んでいる:

public function create(EmployeeRepository $employeeRepository) 
{ 
    $manager_list = $employeeRepository->getAllManagersList(); 
    //\Debugbar::info($manager_list); 
    return view('employees/create')->with('manager_list',$manager_list); 
} 

しかし、これを実行すると、次のようになります。

Type error: Argument 1 passed to App\Repositories\EmployeeRepository::getAllManagersList() must be an instance of App\Employee, none given, called in C:\xampp\htdocs\people\app\Http\Controllers\EmployeeController.php on line 31 

私のモデルでは、dbリクエストとリポジトリを整理して整理して、ページにうまく収まるようにしています。だからこそ、コントローラからリポジトリにモデルを呼び出すようにしています。

答えて

0

$employeeRepository->getAllManagersList();に電話しています。

しかし、この関数は、 public function getAllManagersList(Employee $employee)と定義されています。

+0

申し訳ありません私はあなたが意味することを理解していません...なぜそれは動作していません。私はあなたがこのようなクラスを注入できると思った... – Richard

+0

パラメータがありません。 –

関連する問題