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.
