查询中的数据错误,Laravel

查询中的数据错误,Laravel,laravel,postgresql,maatwebsite-excel,Laravel,Postgresql,Maatwebsite Excel,我尝试使用Maatwebsite\excel在excel中导出一些数据。我还从前端传递了一些参数,问题是在dd()中,我得到了正确的数据,但在excel文件中,我得到了错误的数据(通常是数据库中没有数据或所有行) 我的\uu构造(): public function\u构造($req){ $this->request=$req; } 查询: 公共函数查询() { $direction=($this->request->sort_direction=='false')?'asc':'desc';

我尝试使用
Maatwebsite\excel
在excel中导出一些数据。我还从前端传递了一些参数,问题是在
dd()
中,我得到了正确的数据,但在excel文件中,我得到了错误的数据(通常是数据库中没有数据或所有行)

我的
\uu构造()

public function\u构造($req){
$this->request=$req;
}
查询:

公共函数查询()
{
$direction=($this->request->sort_direction=='false')?'asc':'desc';
$query=ViewData::query();
如果($this->request->has('search\u gender')&&!为空($this->request->search\u gender)){
$query->where('gender','=',$this->request->search_gender);
}
//在这里我得到一些奇怪的东西。。
//($this->request->search\u-gender==“F”)->如果我使用“F”就行了,如果我使用$this->request->search\u-gender,不要!
//另外,如果我在dd($query->get())中使用$this->request->search_sex,我会得到正确的数据,而在excel文件中,我会得到错误的数据
如果(!$this->request->sort\u by){
$this->request->sort\u by=“full\u name”;
}
$query->orderBy($this->request->sort\u by,$direction);
返回$query;
}
我的控制器:

//导出CSV数据
公共函数导出(请求$Request)
{
return(newdataexport($request))->下载('data.xlsx');
}
使用实际查询更新:

数组:3[
“查询”=>“从“查看完整数据”中选择*,其中“性别”=?按“完整名称”描述排序”
“绑定”=>数组:1[
0=>“M”
]
“时间”=>34.7
]

编辑1:以下
Maatwebsite\Excel
文档:

通过阅读文档,我相信我理解了您的
query()
调用。这是一个
invoicesxport
实现的

正如官方所说,我认为您需要创建一个构造函数参数,以便在
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())


您可以看到绑定值是否会被解析。您可以检查查询是否以正确的方式生成。

编辑1:Following
Maatwebsite\Excel
文档:

通过阅读文档,我相信我理解了您的
query()
调用。这是一个
invoicesxport
实现的

正如官方所说,我认为您需要创建一个构造函数参数,以便在
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())


您可以看到绑定值是否会被解析。您可以检查查询是否以正确的方式生成。

您可以在如何创建excel文件中提供更多信息吗?还是在创建文件时操作数据的函数?我刚刚添加了控制器和_构造,希望能有所帮助。关于
export()
函数中的
$request
变量?调用
newdataexport()
时,会以正确的方式得到吗?是的,如果我添加($this->request)//我会得到我需要的。我还尝试request(),而不从控制器传递。比如:公共函数uu construct(){$this->data=request();},我得到数据,但在我的查询中得到“?”。可能不是类型问题
F
可以解释为
FALSE
。使用
M
,查询工作正常吗?而且,如果你得到了
dd($this->request->search\u gender)
,你得到了什么,当你选择
F
时你得到了什么类型?你能在如何创建excel文件中输入更多信息吗?还是在创建文件时操作数据的函数?我刚刚添加了控制器和_构造,希望能有所帮助。关于
export()
函数中的
$request
变量?调用
newdataexport()
时,会以正确的方式得到吗?是的,如果我添加($this->request)//我会得到我需要的。我还尝试request(),而不从控制器传递。比如:公共函数uu construct(){$this->data=request();},我得到数据,但在我的查询中得到“?”。可能不是类型问题
F
可以解释为
FALSE
。使用
M
,查询工作正常吗?而且,如果你得到了
dd($this->request->search\u gender)
,你得到了什么,当你选择
F
时你得到了什么类型?是的。确实如此,但我不确定如何在我的查询中获得该值……我也看到了这一点。还是不行。如果帮助:,这是完整的当前代码..是。确实如此,但我不确定如何在我的查询中获得该值……我也看到了这一点。还是不行。如果帮助:,这是完整的当前代码。。