我得到我的laravel應用這個錯誤,我無法找到一個解決ErrorException傳遞給控制器控制器參數2 :: __結構()
ErrorException in FactoryController.php line 39:
Argument 2 passed to Vanguard\Http\Controllers\FactoryController::__construct()
must implement interface Vanguard\Repositories\Factory\FactoryRepository,
instance of Vanguard\Repositories\Country\EloquentCountry given
這些都是它指向的線條。
//Line 39 is below
public function __construct(CountryRepository $countries, FactoryRepository $factories, RoleRepository $roles, PermissionRepository $permissions)
{
$this->middleware('permission:system.manage');
$this->roles = $roles;
$this->permissions = $permissions;
$this->countries = $countries;
$this->factories = $factories;
}
這是FactoriesRepositories
<?php
namespace Vanguard\Repositories\Factory;
interface FactoryRepository
{
/**
* Get all system factorys.
*
* @return mixed
*/
public function all();
/**
* Finds the factory by given id.
*
* @param $id
* @return mixed
*/
public function find($id);
/**
* Creates new factory from provided data.
*
* @param array $data
* @return mixed
*/
public function create(array $data);
/**
* Updates specified factory.
*
* @param $id
* @param array $data
* @return mixed
*/
public function update($id, array $data);
/**
* Remove specified factory from repository.
*
* @param $id
* @return mixed
*/
public function delete($id);
}
的代碼,這是EloquentFactory
<?php
namespace Vanguard\Repositories\Factory;
use Cache;
use Vanguard\Events\Factory\Created;
use Vanguard\Events\Factory\Deleted;
use Vanguard\Events\Permission\Updated;
use Vanguard\Factories;
class EloquentFactory implements FactoryRepository
{
/**
* {@inheritdoc}
*/
public function all()
{
return Factories::all();
}
/**
* {@inheritdoc}
*/
public function find($id)
{
return Factories::find($id);
}
/**
* {@inheritdoc}
*/
public function create(array $data)
{
$factory = Factories::create($data);
event(new Created($factory));
return $factory;
}
/**
* {@inheritdoc}
*/
public function update($id, array $data)
{
$factory = $this->find($id);
$factory->update($data);
Cache::flush();
event(new Updated($factory));
return $factory;
}
/**
* {@inheritdoc}
*/
public function delete($id)
{
$factory = $this->find($id);
event(new Deleted($factory));
$status = $factory->delete();
Cache::flush();
return $status;
}
}
爲什麼要'先鋒\庫\國家\ EloquentCountry'實行 '先鋒\庫\廠\ FactoryRepository' – dmSherazi
因爲在'FactoryController'構造函數的第二個參數,您所期待的'$ factories'實現了'FactoryRepository'接口。 –