gpt4 book ai didi

php - 将过滤器附加到 laravel 中集合的 sql 结果

转载 作者:行者123 更新时间:2023-12-04 14:25:02 24 4
gpt4 key购买 nike

因此,使用纯 PHP 和 MySQL,我可以过滤查询等问题。 $sql = 从用户中选择*;然后我有下拉菜单,国家省份和地区。

如果用户未选择任何内容,则单击获取报告显示所有用户。如果用户从下拉列表中选择任何一个,例如。 country 然后它应该根据所选国家/地区缩小结果范围。用户还可以在所有下拉菜单上实现相同的功能。

所以我正在尝试使用 Laravel 归档相同的内容,我会向您展示我的代码。

我已经选择并加入了表格,它会返回我的结果。如果设置了 dropdwon 值,我尝试在结果中添加一个位置,但它没有像我期望的那样给我结果

$results = DB::table('people')
->leftJoin('contacts', 'people.id', '=', 'contacts.person_id')
->leftJoin('provinces', 'contacts.province_id', '=', 'provinces.id')
->leftJoin('nationalities', 'people.nationality_id', '=', 'nationalities.id')
->leftJoin('districts', 'contacts.district_id', '=', 'districts.id')
->select('people.*', 'contacts.*', 'provinces.name AS province_name',
'nationalities.name AS nationality', 'districts.name AS district_name');

if (request()->has('nationality_id')) {
$nationality_id = request('nationality_id');
$results->where('people.nationality', '=', $nationality_id)->get();
}

return view('reports.index', compact('results', 'nationalities', 'provinces'));

我希望如果我选择下拉列表并喜欢省份,它会使用所选省份的选定值过滤集合。

最佳答案

你应该编辑这段代码:

 if (request()->has('nationality_id')) {
$nationality_id = request('nationality_id');
$results = $results->where('people.nationality', '=', $nationality_id)->get();
}

变成这样:

if ($nationality_id = request('nationality_id')) {
$results = $results->where('people.nationality', '=', $nationality_id);
}

$results = $results->get()

关于php - 将过滤器附加到 laravel 中集合的 sql 结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57770540/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com