Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel-在自己的类中使用存储库_Php_Laravel_Repository Pattern - Fatal编程技术网

Php Laravel-在自己的类中使用存储库

Php Laravel-在自己的类中使用存储库,php,laravel,repository-pattern,Php,Laravel,Repository Pattern,在Laravel4中,我有几个接口,它们当前绑定到雄辩的存储库。在我的控制器中,我会: use Acme\Repositories\User\UserRepository; class UserController extends BaseController { /** * @var UserRepository */ protected $users; public function __construct(UserRepository $

在Laravel4中,我有几个接口,它们当前绑定到雄辩的存储库。在我的控制器中,我会:

use Acme\Repositories\User\UserRepository;

class UserController extends BaseController {

    /**
     * @var UserRepository
     */
    protected $users;


    public function __construct(UserRepository $users)
    {
        $this->users = $users;
    }
然后,我可以访问我的自定义方法,使用Elounting获取数据

然而,在我自己的课堂上,我如何做到这一点

use Acme\Repositories\Notification\NotificationRepository;
use Acme\Services\ServiceInterface;

class HipChatService implements ServiceInterface {

    protected $notifications;

    public function __construct(NotificationRepository $notifications)
    {
        $this->notifications = $notifications;
    }
要在路线中进行测试:

use Acme\Services\HipChat\HipChatService;

Route::get('hipchat', function()
{
    $h = new HipChatService();
});
然后我得到一个错误:

传递给Acme\Services\HipChat\HipChatService::\uu construct()的参数1必须是Acme\Repositories\Notification\NotificationRepository的实例,未给出任何实例

现在我明白了为什么会发生这种情况,但是我应该如何在自己的类中使用存储库呢?我如何才能调用控制器+方法而不发生这种情况


干杯

如果你想让Laravel解决你的依赖关系,你必须用
App::make
来构建你的对象,而不是用new手动实例化

$myInstance = App::make('Acme\Services\HipChat\HipChatService');

我对Laravel真的很陌生,但我认为你的问题可能是你必须通过发送一个
NotificationRepository
实例来绑定
HipChatService
的实例化,然后IoC将发挥神奇的作用。无论如何,只要阅读代码,就好像无法以这种方式调用构造函数,
$notifications
参数是必需的。