ulobby / NeoEloquent

An extension of Laravel Elqouent that supports Neo4j, a native graph database
MIT License
41 stars 17 forks source link

Fix multiple whereRelation #57

Open joseraul opened 9 months ago

joseraul commented 9 months ago

Work in progress for fixing the following scenario

...
$user = User::create([]);

$task = Task::create([]);
$task->creator()->attach($user);

$task = Task::query()
    ->whereRelation('creator', 'id', $user->id)
    ->orWhereRelation('assigned', 'id', $user->id)
    ->get();
...

ideally, we would need something like:

MATCH (task:`Task`),
 (task)-[`rel_created_by_user`:`CREATOR`]-(creator:`User`),
 (task:`Task`)
OPTIONAL MATCH (task)-[`rel_assigned_to_user`:`ASSIGNED`]-(assigned:`User`)
WHERE
    id(creator) = $iduser AND 
    id(assigned) = $iduser
RETURN task