Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/263.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 BindingResolutionException和Target不可实例化_Php_Laravel - Fatal编程技术网

Php BindingResolutionException和Target不可实例化

Php BindingResolutionException和Target不可实例化,php,laravel,Php,Laravel,错误: BindingResolutionException in Container.php line 887: Target [App\Helpers\Contracts\AccessTokenInterface] is not instantiable. Route::get('/', 'LoginController@handleProviderCallback'); namespace App\Http\Controllers; use App\Helpers\Contracts

错误:

BindingResolutionException in Container.php line 887:
Target [App\Helpers\Contracts\AccessTokenInterface] is not instantiable.
Route::get('/', 'LoginController@handleProviderCallback');
namespace App\Http\Controllers;

use App\Helpers\Contracts\AccessTokenInterface;

class LoginController extends Controller
{

    public function handleProviderCallback(AccessTokenInterface $accessTokenInstance)
    {

        return $accessTokenInstance->getSomething();
    }
}
namespace App\Providers;

use Illuminate\Support\ServiceProvider;
use App\Helpers\Contracts\AccessTokenInterface;
use AccessToken;

class TokenServiceProvider extends ServiceProvider
{
    protected $defer = true;

    public function boot()
    {
        //
    }

    public function register()
    {
        $this->app->bind('AccessTokenInterface::class', function(){
            return new AccessToken();
        });
    }
}
namespace App\Helpers;

use App\Helpers\Contracts\AccessTokenInterface;

class AccessToken implements AccessTokenInterface
{
    protected $something;

    public function setSomething()
     {
        $something = 100;
     }

    public function __construct()
    {
        $this->setSomething();
    }

    public function getSomething(){
        return $something;
    }
namespace App\Helpers\Contracts;

Interface AccessTokenInterface
{

    public function getSomething();
    public function setSomething();
}
路线:

BindingResolutionException in Container.php line 887:
Target [App\Helpers\Contracts\AccessTokenInterface] is not instantiable.
Route::get('/', 'LoginController@handleProviderCallback');
namespace App\Http\Controllers;

use App\Helpers\Contracts\AccessTokenInterface;

class LoginController extends Controller
{

    public function handleProviderCallback(AccessTokenInterface $accessTokenInstance)
    {

        return $accessTokenInstance->getSomething();
    }
}
namespace App\Providers;

use Illuminate\Support\ServiceProvider;
use App\Helpers\Contracts\AccessTokenInterface;
use AccessToken;

class TokenServiceProvider extends ServiceProvider
{
    protected $defer = true;

    public function boot()
    {
        //
    }

    public function register()
    {
        $this->app->bind('AccessTokenInterface::class', function(){
            return new AccessToken();
        });
    }
}
namespace App\Helpers;

use App\Helpers\Contracts\AccessTokenInterface;

class AccessToken implements AccessTokenInterface
{
    protected $something;

    public function setSomething()
     {
        $something = 100;
     }

    public function __construct()
    {
        $this->setSomething();
    }

    public function getSomething(){
        return $something;
    }
namespace App\Helpers\Contracts;

Interface AccessTokenInterface
{

    public function getSomething();
    public function setSomething();
}
控制器:

BindingResolutionException in Container.php line 887:
Target [App\Helpers\Contracts\AccessTokenInterface] is not instantiable.
Route::get('/', 'LoginController@handleProviderCallback');
namespace App\Http\Controllers;

use App\Helpers\Contracts\AccessTokenInterface;

class LoginController extends Controller
{

    public function handleProviderCallback(AccessTokenInterface $accessTokenInstance)
    {

        return $accessTokenInstance->getSomething();
    }
}
namespace App\Providers;

use Illuminate\Support\ServiceProvider;
use App\Helpers\Contracts\AccessTokenInterface;
use AccessToken;

class TokenServiceProvider extends ServiceProvider
{
    protected $defer = true;

    public function boot()
    {
        //
    }

    public function register()
    {
        $this->app->bind('AccessTokenInterface::class', function(){
            return new AccessToken();
        });
    }
}
namespace App\Helpers;

use App\Helpers\Contracts\AccessTokenInterface;

class AccessToken implements AccessTokenInterface
{
    protected $something;

    public function setSomething()
     {
        $something = 100;
     }

    public function __construct()
    {
        $this->setSomething();
    }

    public function getSomething(){
        return $something;
    }
namespace App\Helpers\Contracts;

Interface AccessTokenInterface
{

    public function getSomething();
    public function setSomething();
}
提供商:

BindingResolutionException in Container.php line 887:
Target [App\Helpers\Contracts\AccessTokenInterface] is not instantiable.
Route::get('/', 'LoginController@handleProviderCallback');
namespace App\Http\Controllers;

use App\Helpers\Contracts\AccessTokenInterface;

class LoginController extends Controller
{

    public function handleProviderCallback(AccessTokenInterface $accessTokenInstance)
    {

        return $accessTokenInstance->getSomething();
    }
}
namespace App\Providers;

use Illuminate\Support\ServiceProvider;
use App\Helpers\Contracts\AccessTokenInterface;
use AccessToken;

class TokenServiceProvider extends ServiceProvider
{
    protected $defer = true;

    public function boot()
    {
        //
    }

    public function register()
    {
        $this->app->bind('AccessTokenInterface::class', function(){
            return new AccessToken();
        });
    }
}
namespace App\Helpers;

use App\Helpers\Contracts\AccessTokenInterface;

class AccessToken implements AccessTokenInterface
{
    protected $something;

    public function setSomething()
     {
        $something = 100;
     }

    public function __construct()
    {
        $this->setSomething();
    }

    public function getSomething(){
        return $something;
    }
namespace App\Helpers\Contracts;

Interface AccessTokenInterface
{

    public function getSomething();
    public function setSomething();
}
助手:

BindingResolutionException in Container.php line 887:
Target [App\Helpers\Contracts\AccessTokenInterface] is not instantiable.
Route::get('/', 'LoginController@handleProviderCallback');
namespace App\Http\Controllers;

use App\Helpers\Contracts\AccessTokenInterface;

class LoginController extends Controller
{

    public function handleProviderCallback(AccessTokenInterface $accessTokenInstance)
    {

        return $accessTokenInstance->getSomething();
    }
}
namespace App\Providers;

use Illuminate\Support\ServiceProvider;
use App\Helpers\Contracts\AccessTokenInterface;
use AccessToken;

class TokenServiceProvider extends ServiceProvider
{
    protected $defer = true;

    public function boot()
    {
        //
    }

    public function register()
    {
        $this->app->bind('AccessTokenInterface::class', function(){
            return new AccessToken();
        });
    }
}
namespace App\Helpers;

use App\Helpers\Contracts\AccessTokenInterface;

class AccessToken implements AccessTokenInterface
{
    protected $something;

    public function setSomething()
     {
        $something = 100;
     }

    public function __construct()
    {
        $this->setSomething();
    }

    public function getSomething(){
        return $something;
    }
namespace App\Helpers\Contracts;

Interface AccessTokenInterface
{

    public function getSomething();
    public function setSomething();
}
界面:

BindingResolutionException in Container.php line 887:
Target [App\Helpers\Contracts\AccessTokenInterface] is not instantiable.
Route::get('/', 'LoginController@handleProviderCallback');
namespace App\Http\Controllers;

use App\Helpers\Contracts\AccessTokenInterface;

class LoginController extends Controller
{

    public function handleProviderCallback(AccessTokenInterface $accessTokenInstance)
    {

        return $accessTokenInstance->getSomething();
    }
}
namespace App\Providers;

use Illuminate\Support\ServiceProvider;
use App\Helpers\Contracts\AccessTokenInterface;
use AccessToken;

class TokenServiceProvider extends ServiceProvider
{
    protected $defer = true;

    public function boot()
    {
        //
    }

    public function register()
    {
        $this->app->bind('AccessTokenInterface::class', function(){
            return new AccessToken();
        });
    }
}
namespace App\Helpers;

use App\Helpers\Contracts\AccessTokenInterface;

class AccessToken implements AccessTokenInterface
{
    protected $something;

    public function setSomething()
     {
        $something = 100;
     }

    public function __construct()
    {
        $this->setSomething();
    }

    public function getSomething(){
        return $something;
    }
namespace App\Helpers\Contracts;

Interface AccessTokenInterface
{

    public function getSomething();
    public function setSomething();
}
我已在providers中注册了提供者,并在Helper的别名中注册了AccessToken

我读了一些答案,但找不到解决办法。我是新来的


我错在哪里

从提供者的
bind
方法中删除引号:

$this->app->bind(AccessTokenInterface::class, function(){
    return new AccessToken();
});
尝试
$this->app->bind(AccessTokenInterface::class,AccessToken::class)不再工作:(我也做了
php-artisan-clear-compiled
config:clear
)。