0
自分の関数で条件をバインドしたい。私は私にマーケティング担当者の名前を与えるMarketersGetという関数を持っています。ここに私のコードは次のとおりです。Doctrine - 条件付きでクエリ内にある
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}
確かに私の条件付きクエリは、それを解決するために、任意の提案偽のですか?