Home > OS >  How to use eval function in laravel eloquent?
How to use eval function in laravel eloquent?

Time:01-27

In controller I have eloquent query wrapped as string. I want to execute it as a code with eval. Here is my code:

<?php

namespace App\Http\Controllers;

use App\Models\Pc;
use App\Http\Requests\StorePcRequest;
use App\Http\Requests\UpdatePcRequest;
use App\Models\Product;

class PcsController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        $query = "Pc::where('speed', '>', 500)->get(['model', 'price'])";

    eval("return $query;");
}

but in here's error in browser: error. Class 'Pc' not found

How can i use it properly?

CodePudding user response:

Your error occurs why laravel dont found the model PC. Use the full path: \App\Models\PC::where('speed', '>', 500)->get(['model', 'price'])->get(); for example. your path can be different. I added get() maybe you havce to remove because you concatinate on other place.

Update

Change it to return eval("return $query;"); then you will get data.

  •  Tags:  
  • Related