首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我的复选框给了我错误的值。怎样用拉拉做前排?

我的复选框给了我错误的值。怎样用拉拉做前排?
EN

Stack Overflow用户
提问于 2018-01-29 02:35:07
回答 2查看 50关注 0票数 1

我使用的是Laravel5.2,我的表单中有一个选择框。此复选框用于当时可用驱动程序的列表。我只有两个司机,所有的司机都订满了。但是当我预订司机时,列表上有一个司机显示。我想我的前额有个错误。我说的对吗?你知道怎么解决吗?以下是我的控制器代码:

代码语言:javascript
运行
复制
    $driverReserved = Reservation::select("RES_DRIVER")->where("RES_RETURN", '>', $reservation[0]->RES_DEPARTURE)->where('RES_STATUS', '=', 'Assigned')->Where('RES_SPK', '!=', $request['RES_SPK'])->exists();

    $driverReserved1 = Reservation::select("RES_DRIVER")->where("RES_RETURN", '>', $reservation[0]->RES_DEPARTURE)->where('RES_STATUS', '=', 'Assigned')->Where('RES_SPK', '!=', $request['RES_SPK'])->distinct()->get();

    if(empty($driverReserved)){
        $driver = vDriver::all();
    }
    else{
        foreach($driverReserved1 as $item1) {
            $driver = vDriver::where("REF_TEXT", "!=", $item1['RES_DRIVER'])->get();
        }

    }

这就是我做print_r($dirverReserved1);die;的时候。里面有两个司机。

照明\数据库\雄辩\集合对象(项目:受保护的=>数组( => => \订票对象)(时间戳=>主键:受保护的=> RES_ID表:受保护的=>预留连接:受保护的=> perPage:受保护的=> 15增量=> 1属性:受保护的=>数组( RES_DRIVER => Asim )原始:受保护的=>阵列( RES_DRIVER => Asim )关系:受保护的=>数组()隐藏的:受保护的=>阵列()可见:受保护的=>数组(附加):受保护的=> (可填充的):受保护的=> 19#数组()保护的数组:保护的#20#数组(数组))*日期:受保护的=>数组()dateFormat:受保护的=>数组()触碰:受保护的=>数组()可观察性:受保护的=>阵列()与:受保护的=>阵列()形态类:受保护的=>阵列存在1 wasRecentlyCreated => )1 => App\订票对象(时间戳=>主键:受保护的=> RES_ID表:受保护的=>保留连接:受保护的=> 15递增的=> 1属性:受保护的=>数组(#en23 20# Sulhi Mukhlas )原始:保护的=> 21#( Sulhi Mukhlas )关系:保护数组()隐藏:受保护的=>阵列()可见:受保护的=>阵列()附加:受保护的=>阵列()可填充:受保护的=>阵列()已保护:受保护的=>阵列( => *)日期:受保护的=>阵列()dateFormat:受保护的=>阵列()触碰:受保护的=>阵列()观察:受保护的=>阵列()带:受保护的=>数组()形态学:受保护的=>数组:受保护的=>阵列( => )

但是当我在前排做print_r($item1['RES_DRIVER']);die;时,它只显示了一个名叫Asim的司机。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-01-29 03:34:24

我认为您正在使用驱动程序的名称来处理所有这些事情,但是如果您使用了ID,那么它会更好。

不管怎样,

我认为您应该在代码中使用pluckwhereNotIn来解决这样的问题,

将对$driverReserved1的查询更改为

代码语言:javascript
运行
复制
$driverReserved1 = Reservation::select("RES_DRIVER")->where("RES_RETURN", '>', $reservation[0]->RES_DEPARTURE)->where('RES_STATUS', '=', 'Assigned')->Where('RES_SPK', '!=', $request['RES_SPK'])->distinct()->pluck('RES_DRIVER');

这将为您提供保留的不同驱动程序名称数组。现在,使用whereNotIn,您可以获得这样的已预订司机以外的其他司机,

代码语言:javascript
运行
复制
if(empty($driverReserved)){
    $driver = vDriver::all();
}
else{
        $driver = vDriver::whereNotIn("REF_TEXT",$driverReserved1)->get();
}

我觉得这对你的案子有用。

我希望你能理解。

票数 1
EN

Stack Overflow用户

发布于 2018-01-29 03:34:50

首先检查Laravel收藏,它有相当好的功能

其次,代码是正确的,输出也是正确的:D

你只是期望错误的输出

代码语言:javascript
运行
复制
    foreach($driverReserved1 as $item1) {
        $driver = vDriver::where("REF_TEXT", "!=", $item1['RES_DRIVER'])->get();
    }

在这里,您刚刚说过最后一条记录将保存在$driver中,所以您可以在驱动程序中使用它们。

array_merge($firstArray,$secondArray);

在这里的例子中,它将类似于

代码语言:javascript
运行
复制
foreach($driverReserved1 as $item1) {
        $driver = array_merge($driver ,vDriver::where("REF_TEXT", "!=", $item1['RES_DRIVER'])->get());
    }

当然,之前还分配了司机

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48493616

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档