Я смущен.PHP Если условия
У меня есть три функции, чтобы проверить, что вошедшего в систему пользователя является:
public function isAuthor(User $user)
{
return $user->getId() === $this->getDestination();
}
public function isSupervisor(User $user)
{
return $user->getId() === $this->getFirstApprover();
}
public function isSecondApprover(User $user)
{
return $user->getId() === $this->getSecondApprover();
}
А потом я хочу, чтобы добавить условие в своих действиях, чтобы проверить, является ли пользователь какой-либо из указанных выше трех. Если он не является одним из них, следует отказаться от доступа. Пользователь может иногда быть более чем одним из них, но в основном только один из трех.
я первый думать о чем-то вроде этого, но, очевидно, она не может работать
if (!$object->isAuthor($this->getUser()) || !$object->isSupervisor($this->getUser()) || !$object->isSecondApprover($this->getUser())) {
throw new AccessDeniedException();
}
Что будет лучший способ проверить, является ли пользователь один из них? Должен ли я создать совершенно новую функцию?
Должен ли я использовать что-то вроде этого:
if (!$object->isAuthor($this->getUser())) {
throw new AccessDeniedException();
} elseif (!$object->isSupervisor($this->getUser())) {
throw new AccessDeniedException();
}
Могу ли я, пожалуйста, некоторые мысли и ввод от других? Потому что я сейчас очень смущен. еще новичок здесь
Используйте '&&' вместо '||' в вашем первом пробном состоянии, если условие – jitendrapurohit
* ", но, очевидно, оно не может работать" * - Почему бы и нет? Вы просто перепутали логическую логику. Вы хотите, чтобы 'is not X AND не Y AND не является Z', другими словами *" не является ни одним из этих "*. В настоящее время вы выражаете * «если какой-либо из них ложный» * ... – deceze