У меня есть следующие строки в моем коде, чтобы получить сущность в ZF3:
$entity = $this->userCredentialsTableGateway
->getResultSetPrototype()
->getArrayObjectPrototype();
Чтобы автоматизировать его для разных таблиц, я создал функцию:
private function getEntityFromGateway( $table )
{
$context = $table . "TableGateway";
return $this->$context
->getResultSetPrototype()
->getArrayObjectPrototype();
}
Когда я пытаюсь получить
$entity = $this->getEntityFromTableGateway( "UserCredentials" )
это дает ошибку:
Undefined property:
User\DataGateway\UserDataGateway::$UserCredentialsTableGateway
Итак, почему $this->$var
действует как $this->$$var
,
PHP версия 7.2
Я думаю, что вам нужно внести небольшие изменения в существующий код.
"{$table}TableGateway"
$context = lcfirst("{$table}TableGateway")
Итак, ваш код будет таким
private function getEntityFromGateway( $table )
{
$context = lcfirst("{$table}TableGateway");
return $this->$context
->getResultSetPrototype()
->getArrayObjectPrototype();
}
и называть это так, как вы уже делаете,
$entity = $this->getEntityFromTableGateway( "UserCredentials" )
Других решений пока нет …