$Request is empty/null inside my own controller

I noticed it is not really null. Here is the content if I use:

print_r($request->getBody())

The body:

Slim\Http\RequestBody Object ( [stream:protected] => Resource id #47 [meta:protected] => [readable:protected] => [writable:protected] => [seekable:protected] => [size:protected] => [isPipe:protected] => )

getPasedBody() returns null, which is running nice without the controller

I am sending:

{
"username":"test",
"password":"1234567890"
}

Here is my index.php. I think its really clean

<?php


require './vendor/autoload.php';
require_once './Framework/init.php';

$app = new Slim\App([
    'settings' => [
        'displayErrorDetails' => true,

        // Monolog settings
        'logger' => [
            'name' => 'slim-app',
            'path' => __DIR__ . '/logs/app.log',
        ],
    ],
]);

// Set up dependencies
$container = $app->getContainer();

// monolog
$container['logger'] = function ($c) {
    $settings = $c->get('settings')['logger'];
    $logger = new Monolog\Logger($settings['name']);
    $logger->pushProcessor(new Monolog\Processor\UidProcessor());
    $logger->pushHandler(new Monolog\Handler\StreamHandler($settings['path'], Monolog\Logger::WARNING));
    return $logger;
};




$app->get('/', \Routes\RootController::class);
$app->post('/login', \Routes\LoginController::class);




$app->get('/hello[/{name}]', function ($request, $response, $args) {

    $user = new User();

    if ($user->isLoggedIn()) {
        $response->write("Hello, " . $args['name']);


    } else {
        $response->write("Du musst dich einloggen");

    }
    return $response;

})->setArgument('name', 'World!');


$app->run();