Я использую Laravel Framework 5.8.21
. Я пытаюсь связать interface
с классом, основанным на Request
параметрах внутри AppServiceProvider
* * * * * * * * * метода, подобного этому.
public function register()
{
$this->app->bind('App\Contracts\SomeInterface', 'App\Logic\ClassName');
if(Request::has('notification_type') && Request::get('notification_type') == 'email') {
$this->app->bind('App\Contracts\SomeInterface', 'App\Logic\SomeotherClassName');
}
}
и позже вводит интерфейс для метода Controller
s __construct()
.
с тестами, он всегда привязан к ClassName
. Я пытался получить доступ к URL-адресу внутри AppServiceProvider
, и при запуске unit tests
он всегда возвращал /
с $this->app->request->getRequestUri();
и методом как GET
, хотя из теста, который я отправляю на URL-адрес, вот так.
$this->post('/notification', [
'notification_type' => 'email',
])->assertJson(
'message-push-status' => true,
]);
При тестировании с Почтальоном, когда я пытаюсь опубликовать http://localhost:8000/notification
, он говорит, 419 | Page Expired.