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();