Как выполнить запрос из одного сервиса к другому и создать объект app-platform(doctrine)?
Есть класс с геттерами и сеттерами, для текущей размапленной таблицы.
Есть прием параметров не из данной таблицы.
Нужно при выполнении запроса к api методу таблицы A по входным параметрам найти данные в таблице B и если есть объект соответствующий критериям, то вернуть его id, который уже использовать при создании объекта в таблице A.
Перестаньте использовать "таблицы" и "записи" и используйте "объекты".
Doctrine исповедует принцип persistence ignorance. То есть дает вам определенный уровень изоляции от хранилища данных.
У вас есть репозитории, у вас есть сущности. Попробуйте описать что вы хотите сделать используя эти термины, при том что сущности доктрины это просто PHP объекты, ничего особенного.
Дык, я использую данные термины исключительно так как они более распространенные в ключе того что данная ORM не привязана к конкретной базе и определенной нотации.
Уточнение:
1. мапа объекта A
2. мапа объекта Б
3. Необходимо выполнить запрос к Б и при этом запросить существует ли по входным параметрам объект в А, если существует, то вернуть его id.
Сергей Протько: если вы посмотрите описание задачи чуть выше, то заметите, что id объекта A используется при создании объекта B. Мы сначала делаем проверку значений и исходя из результатов проверки либо создаем объект, либо нет.
class BFactory{
private $bRepository;
private $aRepository;
public function __construct(ARepository $aRepository, BRepository $bRepository) {
$this->aRepository = $aRepository;
}
public function create($data) {
$criteria = $this->getCriteriaFromData(); //
$a = $this->aRepository->findMatchingCriteria($criteria);
// передаем внутрь конструктора всю сущность A,
// а там внутри пусть уже разбирается конструктор что ему там надо.
// если нам связь между объектами нужна то просто айдишкой уже не обойтись
return new B($data, $a);
}
}