我无法获得不会抛出错误500的服务提供商。 我假设它应该是名称空间问题?
我有一个控制器:
class GameController extends Controller
{
public function start(GameRepositoryInterface $gameRepository) {
return $gameRepository->getLastAdd();
}
}
使用此ServiceProvider:
namespace App\Providers\Game;
use App\Http\Controllers\Game\GameRepositoryInterface;
use App\Http\Controllers\Game\StdGameRepository;
use Illuminate\Support\ServiceProvider;
class GameServiceProvider extends ServiceProvider
{
protected $defer = true;
public function register() {
$this->app->bind(StdGameRepository::class, function() {
return new StdGameRepository();
});
$this->app->bind(GameRepositoryInterface::class, StdGameRepository::class);
}
public function provides() {
return [GameRepositoryInterface::class];
}
}
但这不起作用。 我只是在尝试,所以我现在不需要所有这些。
但这会引发错误500.
这不是:
namespace App\Http\Controllers\Game;
use App;
use App\Http\Controllers\Controller;
class GameController extends Controller
{
public function start() {
App::bind(StdGameRepository::class, function() {
return new StdGameRepository();
});
App::bind(GameRepositoryInterface::class, StdGameRepository::class);
$gameRepository = App::make(GameRepositoryInterface::class);
return $gameRepository->getLastAdd();
}
}
我将服务提供商添加到app.php。 我激活了所有调试选项,但我只有一个白屏。
解决:这是一个缓存问题......
php artisan cache:clear
chmod -R 755存储
composer dump-autoload