Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

abingpj's avatar

How to use Substr in Laravel query?

Hi,

I want to use substr in laravel query, but I am getting error.

Here's what I have tried so far-

$items2 = Course::where('school_id','=',Auth::user()->school_id)
      ->where(\DB::raw('SUBSTR(name, LOCATE('-', name) +  1)'))
      ->where('status','=',1) 
      ->get();

Even I tried query builder also-

$items3 = \DB::table('courses')
                  ->where('status', '=', 1)
                  ->where('school_id','=',Auth::user()->school_id)
                  ->where(\DB::raw('SUBSTR(name, LOCATE('-', name) +  1)'))
                  ->get();

In both case, i am getting A non-numeric value encountered. Any idea?

1 like
2 replies
tisuchi's avatar
tisuchi
Best Answer
Level 70

@abingpj

I guess you should use double qoutes instead of single.

Try this-

$items2 = Course::select(\DB::raw("SUBSTR(name, LOCATE('-', name) +  1) as name"))
       ->where('school_id','=',Auth::user()->school_id)
       ->where('status','=',1) 
       ->get();
5 likes

Please or to participate in this conversation.