如何在laraveleloquent中使用eval函数?

How to use eval function in laravel eloquent?

在控制器中,我将 eloquent 查询包装为字符串。我想用 eval 将它作为代码执行。这是我的代码:

<?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;");
}

但在浏览器中出现错误:error。 Class 'Pc' 未找到

如何正确使用?

您的错误发生是因为 laravel 没有找到型号 PC。使用完整路径:例如 \App\Models\PC::where('speed', '>', 500)->get(['model', 'price'])->get();。你的道路可以不同。 我添加了 get() 也许你不得不删除,因为你在其他地方连接。

更新

改成return eval("return $query;");就可以得到数据了