gpt4 book ai didi

php - Mysql,Php,Laravel 复选框错误

转载 作者:行者123 更新时间:2023-11-28 23:21:36 24 4
gpt4 key购买 nike

我有下一个问题。我该如何解决这个问题?我有两个表 vehiclesvehicles_extras。在第一个表中有很多列。在第二个表中,我只有 4 列:

id, vehicle_id, vehicletype, vehicle_extra

id 是自动递增的,vehicle_id 来自第一个表的 id 列,'vehicletype' 是一个字符串,类型车辆,vehicle_extra 是 extras 的数量。

所以我有一个搜索表单,extras 是复选框,extra[]。在 web.php 我有这段代码:

$data1=DB::table('vehicles_extras')->where('vehicletype','$vt')->where('vehicle_extra',$extras);

....

if(Input::has('extras'))
$query->union($data1);
$data=$query->get();

为此我得到错误:

SQLSTATE[21000]: Cardinality violation: 1222 The used SELECT statements have a different number of columns (SQL: (select count(*) as aggregate from vm_vehicles where vehicletype = car) union (select * from vm_vehicles_extras where vehicletype = car and vehicle_extra = 2))

但是好吧,假设它在工作,但我有更多值的数组,所以我想使用 whereIn

有什么想法吗?我使用 Laravel 5.3。

最佳答案

首先,您必须创建 one-to-many vehiclesvehicles_extras 之间的关系。

在您的 Vehicle 模型中添加以下关系:

public function vehicleExtras()
{
return $this->hasMany('App\VehicleExtra');
}

然后你可以这样查询:

Vehicle::whereHas('vehicleExtras', function ($q) use($extra) {
$q->where('vehicletype', 'car')
->whereIn('vehicle_extra', $extra);
})->get();

关于php - Mysql,Php,Laravel 复选框错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41363642/

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