1

How can I access $data inside the QueryBuilder in Laravel

public function store(Request $request)
{
    $data = [1,2,3,4];
    echo User::whereHas('books', function($query){
            $query->whereIn('id', $data);
         })->get();
}

Above code shows the error

ErrorException thrown with message "Undefined variable: data"
NIKHIL NEDIYODATH
  • 2,703
  • 5
  • 24
  • 30

2 Answers2

1

You need to add use($data) to the closure:

User::whereHas('books', function($query) use($data) {
        $query->whereIn('id', $data);
    })->get();
Alexey Mezenin
  • 158,981
  • 26
  • 290
  • 279
1

You can use use

public function store(Request $request)
{
$data = [1,2,3,4];
echo User::whereHas('books', function($query) use ($data){
        $query->whereIn('id', $data);
     })->get();
}

Hope this helps

FULL STACK DEV
  • 15,207
  • 5
  • 46
  • 66