I've got a problem. I got 2 PHP files that each echo a json_encode() of an array with objects (one an array of users and one an array of rewards). However rewards works perfectly fine while users returns [{},{},{}]
here's my users.php
<?php
header('Content-Type: application/json');
require('../logic/User.php');
require('../database/Database.php');
$database = new Database();
if(isset($_GET['id'])) {
$user = $database->getUserById($_GET['id']);
if($user != false){
echo json_encode($user);
}else{
echo 'User not found';
}
}else {
$users = $database->getUsers();
echo json_encode($users);
}
?>
And here's my User class (without magic methods):
class User implements JsonSerializable
{
private $id;
private $name;
private $birthday;
private $gender;
private $address;
private $postalcode;
private $phonenr;
private $email;
private $facebookid;
private $accessible = array('id', 'name', 'birthday', 'gender', 'address', 'postalcode', 'phonenr', 'email', 'facebookid');
private $editable = array('name', 'birthday', 'gender', 'address', 'postalcode', 'phonenr', 'email', 'facebookid');
private $required = array('id', 'name');
//getter, setter, constructor
public function jsonSerialize(){
return ['id' => $this->id,
'name'=>$this->name,
'birthday'=>$this->birthday,
'gender'=>$this->gender,
'address'=>$this->address,
'postalcode'=>$this->postalcode,
'phonenr'=>$this->phonenr,
'email'=>$this->email,
'facebookid'=>$this->facebookid
];
}
}
$users is filled, so the problems must be the json_encode()
JsonSerializable.