Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 选择查询中的LAVEL通行证列表参数(列)_Php_Arrays_Laravel_Parameter Passing_Yajra Datatable - Fatal编程技术网

Php 选择查询中的LAVEL通行证列表参数(列)

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

我使用了三个表spareparts类别参数以及YajReadataTables

我的控制器操作是:

    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查询,请检查它@德布迪米尔