Вот мое простое решение. Я переопределение метода атрибутов и добавления каких-либо методов, которые начинаются с «get_attribute_», так что я могу использовать их во время сериализации:
class BaseModel extends ActiveRecord\Model
{
public function attributes()
{
$attrs = parent::attributes();
$modelReflector = new ReflectionClass(get_class($this));
$methods = $modelReflector->getMethods(~ReflectionMethod::IS_STATIC & ReflectionMethod::IS_PUBLIC);
foreach ($methods as $method)
{
if (preg_match("/^get_attribute_/", $method->getName()))
{
$attrs[str_replace('get_attribute_', '', $method->getName())] = $method->invoke($this);
}
}
return $attrs;
}
}
Полученные модели, которые используют это будет выглядеть следующим образом:
class User extends BaseModel
{
public $loginSessionId;
function get_attribute_loginSessionId(){
return $this->loginSessionId;
}
}
Таким образом, я могу вручную привязать к loginSessionId (или что-то еще, что мне нужно) и показать его в сериализованных значениях.
Эта модель найдена из базы данных, '$ user-> first_name' и' $ user-> surname' соответствуют полям таблицы. – ridecar2
См. Изменение в моем ответе. attributes(), похоже, не забирает геттеры. – michaelhagedon