В моем приложении 2 объекта;Пользователь и бронирование.
Объект бронирования:
namespace App\Entity;
/**
* @ORM\Table(name="booking")
* @ORM\Entity(repositoryClass="App\Repository\BookingRepository")
*/
class Booking
{
/**
* @ORM\Column(type="boolean")
* @Assert\NotBlank()
*/
private $isActive;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\User", inversedBy="bookings")
*/
private $user;
Объект пользователя:
/**
* @ORM\Table(name="app_user")
* @ORM\Entity(repositoryClass="App\Repository\UserRepository")
* @UniqueEntity(fields="email", message="This email address is already in use")
*/
class User implements AdvancedUserInterface
{
/**
* @ORM\Column(type="string", length=255, unique=true)
* @Assert\NotBlank()
* @Assert\Email()
*/
private $email;
/**
* @ORM\OneToMany(targetEntity="App\Entity\Booking", mappedBy="user")
* @Expose
*/
private $bookings;
/**
* User constructor.
*/
public function __construct()
{
$this->bookings = new ArrayCollection();
}
Я попытался добавить функцию в свой объект пользователя, которая возвращает активное бронирование,Я пробовал это:
/**
* @return mixed
*/
public function getActiveBooking()
{
foreach( $this->bookings as $booking ) {
if( $booking->getIsActive() ) {
return $booking;
}
}
}
Но я получаю следующую ошибку: Ошибка: вызов функции-члена getRoom () со значением NULL
Когда я вызываю ее с помощью $user->getActiveBooking()->getRoom()->getId()