0
エラー:BindingResolutionExceptionとターゲットがインスタンス化ではありません
BindingResolutionException in Container.php line 887:
Target [App\Helpers\Contracts\AccessTokenInterface] is not instantiable.
ルート:
Route::get('/', '[email protected]');
コントローラー:
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;
}
インターフェース:私はプロバイダでプロバイダとAccessTokenで登録した
namespace App\Helpers\Contracts;
Interface AccessTokenInterface
{
public function getSomething();
public function setSomething();
}
ヘルパーのエイリアス。
私はいくつかのstackoverflow答えを読んだが解決策を見つけることができません。私はこれに新しいです。
どこが間違っていますか?
まだ同じ:(...... – NaMo
は 'ます$ this-> APP->バインド(AccessTokenInterface ::クラス、AccessTokenを試してみてください。 :class); ' –
は再び働かなかった:(私は' php artisan clear-compiled'と 'config:clear'もやった。 – NaMo