laravel - 查询中的错误数据,Laravel
问题描述
我尝试使用在 excel 中导出一些数据Maatwebsite\Excel
。同样从前端我传递了一些参数,问题是dd()
我得到了正确的数据,但在 excel 文件中我得到了错误的数据(通常没有或所有来自 db 的行。)
我的__construct()
:
public function __construct($req) {
$this->request= $req;
}
查询:
public function query()
{
$direction = ($this->request->sort_direction === 'false') ? 'asc' : 'desc';
$query = ViewData::query();
if ($this->request->has('search_gender') && !is_null($this->request->search_gender)) {
$query->where('gender', '=', $this->request->search_gender );
}
// HERE I get some strange things..
// ($this->request->search_gender === "F") -> if I use "F", works, if I use $this->request->search_gender , don't!
// also if I use $this->request->search_gender, in dd($query->get()); I get correct data, in excel file I get wrong data
if(!$this->request->sort_by){
$this->request->sort_by = "full_name";
}
$query->orderBy($this->request->sort_by, $direction);
return $query;
}
我的控制器:
// Export CSV data
public function export(Request $request)
{
return (new DataExport($request))->download('data.xlsx');
}
使用实际查询更新:
array:3 [
"query" => "select * from "view_full_data" where "gender" = ? order by "full_name" desc"
"bindings" => array:1 [
0 => "M"
]
"time" => 34.7
]
解决方案
编辑 1:以下Maatwebsite\Excel
文档:
阅读文档,我相信我理解了您的query()
要求。那是一个implements
从 InvoicesExport
。
按照官方文档,我相信您需要创建一个构造函数参数以在您的where
. 按照文档示例:
namespace App\Exports;
use App\Invoice;
use Maatwebsite\Excel\Concerns\FromQuery;
use Maatwebsite\Excel\Concerns\Exportable;
class InvoicesExport implements FromQuery
{
use Exportable;
public function __construct(int $year)
{
$this->year = $year;
}
public function query()
{
return Invoice::query()->whereYear('created_at', $this->year);
}
}
并按如下方式导出您的数据:
return (new InvoicesExport(2018))->download('invoices.xlsx');
原来的:
如果我理解这个问题,可能是这样的:
是 ?
一个绑定值。
如果您在转储中看到:
"bindings" => array:1 [
0 => "M"
]
您认为您的查询将解析此值并?
用相应的值替换您的值。
如果你想得到你的原始 sql,试试这个:
dd($query->toSql());
您可以查看您的绑定值是否会被解析。您可以检查查询是否以正确的方式构建。
推荐阅读
- javascript - JS 如何将 SVG 中的 g 标签导出为具有新视图框和位置的其他 SVG
- python - 我正在为给定宽度包装一个字符串,但我的代码没有生成预期的输出
- server - 在 Power BI 中将两个单独的数据库连接到桌面版本和服务器上
- c++ - 如何使用 bazel 构建 grpc 共享库
- drupal - 发生客户端错误 - Drupal 8 REST API Post 方法
- shopify - 想要在有人更新数量时更新 Shopify 购物车
- php - 当我尝试更新唯一字段时出现laravel错误
- android - 在 Android 应用程序中哪里可以安全地保存静态信息?
- android - 在类型比较期间出现 assertEquals 问题
- javascript - 每行上的数据表获取按钮