Muhamad Yulianto
Muhamad Yulianto

Reputation: 1663

Laravel eloquent where error with <>

I have query for where in native php

where type <> 'point'

and I try convert to eloquent laravel

 ->with('payments',function($query){
      $query->where('type','<>','point');
 })

but it is showing error as follows:

mb_strpos() expects parameter 1 to be string, object given

Upvotes: 11

Views: 16247

Answers (3)

Manish J
Manish J

Reputation: 736

to parse the dynamic parameters within query try this :

$string = 'points';
->with(['payments' => function ($query) use ($string) {
    $query->where('type', '<>', $string);
}])

this will work!!

Upvotes: 2

Mike Harrison
Mike Harrison

Reputation: 1383

If that is all you need to do with the query then you can just chain it like this:

->with('payments')->where('type', '<>', 'point') //chain more after this

Correct answer should be this if you are trying to filter payments where the type is not equal to point.

Upvotes: 1

Alexey Mezenin
Alexey Mezenin

Reputation: 163748

You're using wrong syntax. Correct syntax for with() is:

->with(['payments' => function ($query) {
    $query->where('type', '<>', 'point');
}])

Upvotes: 40

Related Questions