Просмотр поста

.
Delphinum

Koenig, Ну представь две таблицы:

{
users: ['id', 'login'],
messages: ['id', 'message', 'author']
}


Для них есть две сущности:
class User{
  public $id;
  public $login;
}

class Message{
  public $id;
  public $messag;
  public $author;
}

У Message есть связь с User через свойство author, в котором записывается идентификатор юзера, написавшего это сообщение.

Получить эту связь можно двумя способами.

1. Через Mapper:
class MessageMapper extends Mapper{
  public function getAuthor(Message $message){
    $userId = $message->author;
    $userMapper = new UserMapper;
    return $userMapper->fetch($userId);
  }
}

$mapper = new MessageMapper;
$message = $mapper->fetch(1); // Получаем сообщение с id = 1
$author = $mapper->getAuthor($message); // Получаем автора этого сообщения

Ествественно метод getAuthor можно вынести в UserMapper и т.д., идею это не меняет.

2. Через Entity:
class Message{
  ...

  public function getAuthor(){
    $userId = $message->author;
    $userMapper = new UserMapper;
    return $userMapper->fetch($userId);
  }
}

$mapper = new MessageMapper;
$message = $mapper->fetch(1); // Получаем сообщение с id = 1
$author = $message->getAuthor(); // Получаем автора этого сообщения