I am trying to use a Collection model to create a new record in Mongo. I have defined getters/setters and as well an alternative colletion name to be used (getSource()). However upon save() I get no errors but a blank document save for the _id being set.
namespace Apps\Document\Model;
use \Phalcon\Mvc\Collection;
class Client extends Collection
{
protected $client_id;
protected $client_secret;
public function getSource()
{
return "app_clients";
}
public function setClientId($client_id)
{
$this->client_id = $client_id;
}
public function getClient_Id()
{
return $this->client_id;
}
public function setClientSecret($client_secret)
{
$this->client_secret = $client_secret;
}
public function getClientSecret()
{
return $this->client_secret;
}
}
$AppDoc = new \Apps\Document\Model\Client();
$AppDoc->setClientId('some id');
$AppDoc->setClientSecret('shhhh');
$AppDoc->save();
This results in the following document
{ "_id" : ObjectId("539ab922279871b7238b4568") }
It looks like Phalcon only save public values. Is there a way I can tell Phalcon to save protected values? I've found the 'getReservedAttributes' method but i need the opposit to tell Phalcon wich items must be saved
EDIT: 2015-03-13 A look at the C source code point me to this line:
1469: PHALCON_CALL_FUNCTION(&properties, "get_object_vars", this_ptr); https://github.com/qrazi/cphalcon/blob/master/ext/mvc/collection.c#L1469
I'm not a C programmer but i think the problem is there. The function get_object_vars only returns public properties when called form outside the object.
Is this a bug?