У меня есть плеер Facade, где я настраивал информацию о функции, эта функция даст мне информацию о игроках, моя проблема заключается в том, что я вызываю эту функцию путем инъекции зависимостей бросить мне ошибку:Зависимость впрыска - вызов неопределенного метода - Laravel 4
вызов неопределенной метода Команда \ игрока \ \ Фасады игрока :: информация()
вместо этого, если я называю, что функция делает Player::info();
это работает! Почему с помощью этой ошибки меня выбрали?
после моего класса игрока
class Player {
use Team\Player\Models\User;
use Team\Player\Models\Team;
use Team\Player\Models\Fighter;
public function info($user_id)
{
return Fighter::with('team','user')->where('player_id','=',$user_id)->first();
}
}
Мой контроллер, где я стараюсь называть зависимые пакеты
class MatchController extends BaseController {
protected $match;
protected $player;
function __construct(Match $match,Player $player) { // dependency injection
$this->match = $match;
$this->player = $player;
}
public function getInfoPlayer()
{
$player_id = Input::get('user_id');
$player = $this->player->info($player_id);
return View::make('site/team/event/scripts/infoPlayer')->withPlayer($player);
}
}
и мой поставщик услуг, где я связать мой класс
public function register()
{
$this->app['player'] = $this->app->share(function($app)
{
return new Player;
});
$this->app->booting(function()
{
$loader = \Illuminate\Foundation\AliasLoader::getInstance();
$loader->alias('Player', 'Team\Player\Facades\Player');
});
}
Я могу только сказать спасибо очень MUC час!!!! Это хорошее объяснение, но я должен кое-что спросить. Вы связываете PlayerInterface, но у меня нет этого Inteface, я должен его создать? который является лучшим местом для привязки интерфейса проигрывателя? это нормально в файле serviceProvider? – Fabrizio
Да, вам нужно создать (пустой) интерфейс, потому что PHP будет жаловаться на то, что не найдет этот класс или интерфейс. Просто отредактирован, чтобы правильно ответить на ваши вопросы. –
Хорошо, спасибо! Но я создал этот интерфейс и связал его с тем, как вы это сделали, отвечая на добавление правильного пространства имен, но он пришел с ошибкой, Class PlayerInterface не существует, Illuminate \\ Container \\ Container.php "," line ": 522. Извините, но я пытаюсь понять лучше. Cheers! – Fabrizio