Slim Framework POST vázioLi
Olá galera.
Estou precisando muito de uma ajuda, estou criando uma rest api e resolvi utilizar o Slim, o GET funciona perfeitamente, porem o POST está indo vazio, já segui uns 10 tutorias e sempre gravava apenas o ID na tabela do MySQL, isso por que o mesmo é auto increment, então resolvi verificar o retorno após o inserir, e pude observar que o POST sempre vai vázio, já tentei descobrir o por que e ainda não consegui, já instalei WAMP, XAMP, EasyPHP, Bitnami (pois desconfiava que poderia ser o Apache) porem em nenhum deu certo.
Código:
<?php
/* Require Slim and plugins */
require 'Slim/Slim/Slim.php';
/* Register autoloader and instantiate Slim */
\Slim\Slim::registerAutoloader();
$app = new \Slim\Slim();
$app->response()->header('Content-Type', 'application/json;charset=utf-8');
$app->get('/', function () {
echo "Helena Starter > Acompanha Fácil API";
});
$app->post('/users','addUser');
$app->get('/users','getUsers');
$app->run();
function getConn(){
return new PDO(
'mysql:host=localhost;dbname=hs.outjob.acompanhafacil.v100',
'root',
'',
array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8")
);
}
function addUser(){
$request = \Slim\Slim::getInstance()->request();
$user = json_decode($request->getBody());
$sql = "Insert Into tb_users(nome, usuario, senha) Values(:nome,:usuario,:senha)";
$conn = getConn();
$stmt = $conn->prepare($sql);
$stmt->bindParam("nome",$user->nome);
$stmt->bindParam("usuario",$user->usuario);
$stmt->bindParam("senha",$user->senha);
$stmt->execute();
$user->id = $conn->lastInsertId();
echo json_encode(array($user->id));
}
function getUsers(){
$stmt = getConn()->query("Select * From tb_users");
$users = $stmt->fetchAll(PDO::FETCH_OBJ);
echo "{users:".json_encode($users)."}";
}
?>
Script da tabela:
DROP TABLE IF EXISTS `tb_users`;
CREATE TABLE `tb_users` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`nome` varchar(60) DEFAULT NULL,
`usuario` varchar(30) DEFAULT NULL,
`senha` varchar(255) DEFAULT NULL,
`tipo` int(255) DEFAULT NULL,
`fone` varchar(20) DEFAULT NULL,
`email` varchar(255) DEFAULT NULL,
`endereco` varchar(70) DEFAULT NULL,
`complemento` varchar(20) DEFAULT NULL,
`numero` varchar(10) DEFAULT NULL,
`id_cidade` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=21 DEFAULT CHARSET=latin1;
Agradeceria muito se alguém pude-se indicar onde está o erro, já verifiquei o .htaccess e aparentemente está normal, não sei mais o que pode ser.
Discussão (10)
Carregando comentários...