Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Доброго времени суток!
Создал сервис в файле AppServiceProvider: OdataService.
В методе контроллера могу получить объект через app(OdataService::class). Но вот при передаче аргументом в метод контроллера не работает: класс не находит.
Версия Laravel: Lumen (5.8.4)
Версия ОС и тп: поставил самую свежую laravel homestead: vagrant+ virtualBox
Задача, что должно происходить _в целом_, техническое задание:
Авторазрешение зависимости при указании аргументом в методе контроллера
Что произошло, текст ошибки, если есть:
"Class App\Services\OdataService does not exist"
Варианты/догадки, почему это произошло: Прошу подсказать.
Routes:
$router->get('/team/team.php', 'MemberController@team');
app\Http\Controllers\MyController.php
namespace App\Http\Controllers;
use App\Services\OdataService;
class MemberController extends Controller
{
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
}
public function team(OdataService $odata)
{
//$odata = app(OdataService::class); // вот так работает
}
}
AppServiceProvider.php
namespace App\Providers;
require_once __DIR__.'/vendor/autoload.php';
use Illuminate\Support\ServiceProvider;
use Kily\Tools1C\OData\Client;
use App\Services\OdataService;
class AppServiceProvider extends ServiceProvider
{
/**
* Register any application services.
*
* @return void
*/
public function register()
{
$this->app->bind('App\Services\OdataService', function ($app) {
return new Client('/',[
'auth' => [
'',
''
],
'timeout' => 300,
]);
});
}
}
Не в сети