Как завести связи между объектами? Здравствуйте. Где почитать или объясните кто знает о таком случае.
Имеем class Operation
{
public $id;
public $date;
public $user_id;

// Далее сеттеры, геттеры
}
Теперь нужно вывести все операции совместно с информацией некоего пользователяclass Operation {
// ...
public $user
// Добавить User $user = new User::find($this->$user_id)
public setUser(User $user) {
$this->user = $user;
}
}
По сути вопрос можно перефразировать "Как работать с вложенными сущностями?" Стоит ли при создании класса внедрять инъекцию или есть лучший вариант? В основе работа по принципу Data MapperUPD: Поправил пост

21 Авг 2019 в 07:02
236 +1
0
Ответы
1

Для установления связи между объектами вам необходимо использовать концепцию dependency injection (внедрение зависимости). В вашем случае, для установления связи между объектами операции и пользователем, вы можете использовать метод setUser в классе Operation, который будет принимать объект пользователя в качестве параметра.

Примерно так:

class Operation {
public $user;
public setUser(User $user) {
$this->user = $user;
}
}

Затем, при создании объекта операции, вы можете установить связь с объектом пользователя, передавая его в метод setUser:

$operation = new Operation();
$user = new User::find($operation->user_id);
$operation->setUser($user);

Это позволит вам работать с вложенными сущностями и получать доступ к информации о пользователе внутри объекта операции.

Также, вы можете рассмотреть другие способы работы с вложенными сущностями, например, использование ORM (Object-Relational Mapping) библиотек, таких как Doctrine ORM, которые могут автоматически устанавливать связи между объектами на основе вашей базы данных.

20 Апр 2024 в 13:09
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир