【发布时间】:2013-11-26 21:00:19
【问题描述】:
我正在为 Laravel 开发一个包,但遇到一个错误,我不知道如何解决:
传递给 Cartalini\Drayman\Drayman::__construct() 的参数 1 必须是 Cartalini\Drayman\Repositories\UserRepositoryInterface 的实例,没有给出,在 /Applications/MAMP/htdocs/l4/app/controllers/HomeController 中调用。 php 在第 10 行并定义
这是我的代码...
namespace Cartalini\Drayman;
use Cartalini\Drayman\Repositories\UserRepositoryInterface;
class Drayman
{
protected $user;
public function __construct(UserRepositoryInterface $user)
{
$this->user = $user;
}
public function deliverBeer()
{
return $this->user->all();
}
}
用户存储库...
namespace Cartalini\Drayman\Repositories;
class UserRepository implements UserRepositoryInterface
{
public function all()
{
return User::all();
}
}
UserRepositoryInterface...
namespace Cartalini\Drayman\Repositories;
interface UserRepositoryInterface
{
public function all();
}
服务提供商...
public function register()
{
$this->app->bind('Cartalini\Drayman\Repositories\UserRepositoryInterface', 'Cartalini\Drayman\Repositories\UserRepository');
}
最后是我的控制器...
use Cartalini\Drayman\Drayman as Drayman;
class HomeController extends BaseController
{
public function showWelcome()
{
$drayman = new Drayman;
return $drayman->deliverBeer();
}
}
谁能帮我调试一下?
【问题讨论】:
-
您是否尝试阅读错误信息?
-
消息说明了一切。
Daryamn需要UserRepositoryInterface类型的参数,但您没有提供。