Proto
Proto

Reputation: 247

Target Interface is not instantiable. Laravel 4

When I search the error 'Target Interface is not instantiable' I get a lot of results. Somehow I can still not find the solution to my problem.

I am not sure where it goes wrong.

PartnerController.php

<?php use CmsBlox\MOD\PartnerInterface;


class PartnerController extends BaseController {
    public function __construct(PartnerInterface $partner)
    {
        $this->partner = $partner;
    }

    public function Get()
    {
        return "I'm the Get function in class PartnerController";
    }
}

PartnerServiceProvider.php

<?php namespace CmsBlox\Providers;

use App, Illuminate\Support\ServiceProvider;

class PartnerServiceProvider extends ServiceProvider {
    public function register()
    {

    }

    public function boot() 
    {
        app::bind('CmsBlox\MOD\PartnerInterface') ;
    }
}

Routes.php

app::bind('CmsBlox\MOD\PartnerInterface') ;

PartnerInterface.php

<?php namespace CmsBlox\MOD;

interface PartnerInterface {
    public function get();
}

I have also added the provider to App.php (for testing also a app::bind() in the routes.php)

'CmsBlox\Providers\PartnerServiceProvider'

As far I know every file should be correct. Somehow I am missing something!

Upvotes: 2

Views: 1171

Answers (1)

Proto
Proto

Reputation: 247

I just found the answer! Thanks to the Laravel.io forums.

<?php use CmsBlox\MOD\PartnerInterface;

class PartnerController extends BaseController implements PartnerInterface {

    public function get() {...}
}

Upvotes: 1

Related Questions