我得到我的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'接口。 –