PHP - нулевой оператор объединения - PullRequest
0 голосов
/ 17 июня 2020

В моем проекте Symfony я написал метод, в котором мне нужно проверять таблицы в db.

Я ищу параметр id, который я передал в своем вызове API. Он должен быть таким же, как и для вошедшего в систему пользователя, который определяется $ this-> getUser ().

У меня есть $ account и $ paymentDevice из которых $ account-> getUser () возвращает null, поскольку этот объект не существует в db. Он существует в $ paymentDevice-> getUser (), но вроде || (OR) не достигает второго значения. Я пробовал с ?: , ?? , но не работал. Когда я заменяю заказ, он работает.

Как это исправить?

public function clearSomething($id)
 {
        $type = $this->getTypeRepository()->findOneBy([
            'id' => $id
        ]);

    $account = $this->getAccountRepository()->find($id);
    $paymentDevice= $this->getPaymentDeviceRepository()->find($id);

    if ($account->getUser() === $this->getUser() || $paymentDevice->getUser() ===  $this->getUser()) {
        $this->em->remove($type);
        $this->em->flush();
    } else { throw new \Exception('Type does not belong to this Account/PaymentDevice!'); }

 }

1 Ответ

0 голосов
/ 17 июня 2020

А ты тоже так пробовал?

$account = $this->getAccountRepository()->find($id);
$paymentDevice= $this->getPaymentDeviceRepository()->find($id);

$service = $account ?? $paymentDevice;
if ($service !== null && $service->getUser() === $this->getUser()) {
    //
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...