Я хочу связать условие в своей функции. У меня есть функция MarketersGet, которая дает мне имя маркетолога. Вот мой код:Доктрина - условная и где угодно
public function MarketersGet(string $marketerId = ''):array
{
$marketerId = (int)$marketerId;
$userRoles = config('constantTypes.blah');
$marketerRole = $userRoles['MARKETER'];
$userRepository = App::make(DoctrineUserRepo::class);
$result = $userRepository
->selectFrom(' model ')
->where(' model.rolesRole = '.$marketerRole)
->getQuery()
->getResult();
$marketers = [];
foreach ($result as $user) {
$marketers[] = [
'name' => $user->getUserName(),
'id' => $user->getId()
];
}
return $marketers;
}
Я хочу обусловливающие $ marketerId, если это имеет значение, я добавил
->andWhere(' model.id = '.$marketerId)
Я пытался так:
$result = $userRepository
->selectFrom(' model ')
->where(' model.rolesRole = '.$marketerRole);
if ($marketerId != '')
$result->andWhere(' model.id = '.$marketerId);
$result->getQuery()
->getResult();
выше результата :
[]
No Properties
На самом деле, если я ставлю andWhere в запросе по умолчанию, как это:
$result = $userRepository
->selectFrom(' model ')
->where(' model.rolesRole = '.$marketerRole)
->andWhere(' model.id = '.$marketerId)
->getQuery()
->getResult();
Реальный результат будет выглядеть так:
{name: "blah blah", id: 28}
Конечно мой условный запрос ложно, любое предложение разрешить его?