Php 选择查询中的LAVEL通行证列表参数(列)
我使用了三个表spareparts、类别和参数以及YajReadataTables 我的控制器操作是:Php 选择查询中的LAVEL通行证列表参数(列),php,arrays,laravel,parameter-passing,yajra-datatable,Php,Arrays,Laravel,Parameter Passing,Yajra Datatable,我使用了三个表spareparts、类别和参数以及YajReadataTables 我的控制器操作是: public function anyData() { $spareparts_param_list = Sparepart::all(); $list=''; foreach ($spareparts_param_list as $value) { foreach ($value->category
public function anyData()
{
$spareparts_param_list = Sparepart::all();
$list='';
foreach ($spareparts_param_list as $value) {
foreach ($value->category->parameter as $par_list) {
$list .= $par_list->Name.',';
}
}
$spareparts = Sparepart::
join('cars', 'spareparts.car_id', '=', 'cars.id')
->select(['spareparts.id', 'cars.Brend', 'spareparts.Model', $list]);
$datatables = app('datatables')->of($spareparts);
return $datatables->make();
}
“我的数组列表”$list打印颜色、类型、轮胎等参数,。
如何在select查询中传递$list数组?您可以使用where(),如下所示:
$users = DB::table('users')
->whereIn('id', [1, 2, 3])
->get();
文档-您可以使用其中(),类似于:
$users = DB::table('users')
->whereIn('id', [1, 2, 3])
->get();
文档-您可以使用
,其中
:
public function anyData()
{
$spareparts_param_list = Sparepart::all();
$list = [];
foreach ($spareparts_param_list as $value) {
foreach ($value->category->parameter as $par_list) {
$list[] = $par_list->Name;
}
}
$spareparts = Sparepart::
join('cars', 'spareparts.car_id', '=', 'cars.id')
->whereIn('Name', $list)
->select(['spareparts.id', 'cars.Brend', 'spareparts.Model']);
$datatables = app('datatables')->of($spareparts);
return $datatables->make();
}
您可以运行此原始Mysql
命令:
select sp.id as sp_id, sp.model as sp_model, c.brend as car_brend, json_arrayagg(p.name) as p_name
from spareparts as sp
join cars as c on sp.car_id=c.id
join categories as cat on sp.category_id=cat.id
join parameters as p on cat.id=p.category_id
group by sp.model;
上述命令将给出如下结果:
1 |奥迪A6车门|奥迪A6 |[“颜色”、“车窗”]
最后一列将是与每个类别相关的所有参数的json列。您可以使用
,其中:
public function anyData()
{
$spareparts_param_list = Sparepart::all();
$list = [];
foreach ($spareparts_param_list as $value) {
foreach ($value->category->parameter as $par_list) {
$list[] = $par_list->Name;
}
}
$spareparts = Sparepart::
join('cars', 'spareparts.car_id', '=', 'cars.id')
->whereIn('Name', $list)
->select(['spareparts.id', 'cars.Brend', 'spareparts.Model']);
$datatables = app('datatables')->of($spareparts);
return $datatables->make();
}
您可以运行此原始Mysql
命令:
select sp.id as sp_id, sp.model as sp_model, c.brend as car_brend, json_arrayagg(p.name) as p_name
from spareparts as sp
join cars as c on sp.car_id=c.id
join categories as cat on sp.category_id=cat.id
join parameters as p on cat.id=p.category_id
group by sp.model;
上述命令将给出如下结果:
1 |奥迪A6车门|奥迪A6 |[“颜色”、“车窗”]
最后一列将是一个json列,包含与每个类别相关的所有参数。这没关系。但是,每个零件都有自己的类别,该类别有自己的参数。例如,奥迪A6部分车门(表零件)具有门类(表类别),车门具有窗、颜色等参数(表参数)。。这些参数的名称作为列添加到spareparts表中,我希望这些参数的名称通过$list VARIABLE显示在select查询中。我添加了一个原始Mysql查询,请检查它@这没关系。但是,每个零件都有自己的类别,该类别有自己的参数。例如,奥迪A6部分车门(表零件)具有门类(表类别),车门具有窗、颜色等参数(表参数)。。这些参数的名称作为列添加到spareparts表中,我希望这些参数的名称通过$list VARIABLE显示在select查询中。我添加了一个原始Mysql查询,请检查它@德布迪米尔