【问题标题】:Building a raw query into the Laravel Query Builder在 Laravel 查询构建器中构建原始查询
【发布时间】:2021-12-07 09:39:07
【问题描述】:

谁能帮我将以下查询构建到 Laravel 查询构建器中。我只知道如何使用原始查询查询数据库。

SELECT ru.external_ref_no AS SID, usd.user_name AS Username, rs.servicecode AS Package, rc.clientdesc as Entity, rc.clientip as NAS_IP,
ROUND((ROUND((SUM(usd.FREE_UPLOAD_OCTETS)/1048576)))/1024,2) AS Upload,
ROUND((ROUND((SUM(usd.FREE_DOWNLOAD_OCTETS)/1048576)))/1024,2) AS Download,
ROUND((ROUND((SUM(usd.FREE_UPLOAD_OCTETS)/1048576)))/1024,2) + ROUND((ROUND((SUM(usd.FREE_DOWNLOAD_OCTETS)/1048576)))/1024,2) AS Total_Usage
FROM user_session_detail usd, radservice rs, radclient rc, radgroup rg, raduser ru 
WHERE ru.username=usd.user_name AND rs.serviceid=usd.service_id AND rg.groupid=usd.group_id 
AND usd.client_id=rc.clientid AND usd.SESSION_START_TIME > '2021-09-30 00.00.01' AND usd.SESSION_START_TIME < '2021-09-30 23.59.59'
GROUP BY usd.user_name
HAVING (ROUND((SUM(usd.FREE_UPLOAD_OCTETS)/1048576)))/1024 + (ROUND((SUM(usd.FREE_DOWNLOAD_OCTETS)/1048576)))/1024 > 15
AND (ROUND((SUM(usd.FREE_UPLOAD_OCTETS)/1048576)))/1024 + (ROUND((SUM(usd.FREE_DOWNLOAD_OCTETS)/1048576)))/1024 < 20;

【问题讨论】:

标签: php mysql laravel


【解决方案1】:

您的 SQL 查询非常定制,无法由 eloquent 和查询构建器编写,因此您可以像这样将其作为原始 SQL 运行:

$results = DB::select("... your customized SQL query ...");

然后您可以将变量 $results 传递给您的刀片:

return view('reports.secretuserlist',compact('results'));

在刀片中,您可以通过$results 变量访问数据

【讨论】:

  • 以下行可以将值传递给刀片吗?因为我收到一个错误 ""UserSessionDetail" Undefined Variable return view('reports.secretuserlist',compact('$userSessionDetail'));
  • @RaceTech 您的结果将是一个数组,可以像这样将值传递给 balade:view('reports.secretuserlist',compact('results'))。请注意,compact 中的参数不是变量,它是字符串(不带 $)
  • 没有返回视图,我也尝试使用“dd”获取输出,但仍然无法正常工作。您能否就此提出建议并为我编写输出代码。这将是一个很大的帮助。
猜你喜欢
  • 1970-01-01
  • 2018-02-01
  • 1970-01-01
  • 2020-10-19
  • 1970-01-01
  • 1970-01-01
  • 2021-08-19
  • 1970-01-01
  • 2021-09-25
相关资源
最近更新 更多