如何在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;");
就可以得到数据了
在控制器中,我将 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;");
就可以得到数据了