Zf2 сущность присоединиться

Вы можете мне помочь? Я не могу понять, как объединить 2 и более таблиц, каждая таблица имеет сущность. Можно ли использовать как в учении? Я не хочу использовать учение.

Как объединить сущности и использовать в представлениях?

class User
{
protected $id;
protected $email;
protected $password;

public function getId()
{
return $this->id;
}
public function setId($value)
{
$this->id = $value;
}
public function setEmail($value)
{
$this->email = $value;
}
public function getEmail()
{
return $this->email;
}
public function setPassword($value)
{
$this->password = $value;
}
public function getPassword()
{
return $this->password;
}
}

class Info
{
protected $id;
protected $lastname;
protected $firstname;

public function getId()
{
return $this->id;
}
public function setId($value)
{
$this->id = $value;
}
public function setLastname($value)
{
$this->lastname = $value;
}
public function getLastname()
{
return $this->lastname;
}
public function setFirstname($value)
{
$this->firstname = $value;
}
public function getFirstname()
{
return $this->firstname;
}
}

0

Решение

class User
{
...
protected $info;

...
public function readInfo()
{
return $this->info;
}

public function writeInfo(Info $entity)
{
$this->info = $entity;
return $this;
}
}

class ModelUser
{
public function get()
{
$query = 'query for user with info';
$adapter = Zend\Db\TableGateway\Feature\GlobalAdapterFeature::getStaticAdapter();
$result = $adapter->query($query, \Zend\Db\Adapter\Adapter::QUERY_MODE_EXECUTE);

/* Or use tableGateway */

/* Class methods hydrator */
$hydrator = new \Zend\Stdlib\Hydrator\ClassMethods;
/* Hydrate User entity from result */
$userEntity = $hydrator->hydrate($result->toArray(), new User);
/* Hydrate Info entity from result */
$infoEntity = $hydrator->hydrate($result->toArray(), new Info);
/* Write Info entity to User entity */
$userEntity->writeInfo($infoEntity);

return $userEntity;
}
}

class UserController
{
public function indexAction()
{
$model = new ModelUser();
$userEntity = $model->get();

return array(
'user' => $userEntity
);
}
}
1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector