Php 拉维,其中不等于x2
我有一个模型,我正试图用雄辩的语言来质疑它 在我的表格中,我有以下几列Php 拉维,其中不等于x2,php,mysql,laravel,eloquent,Php,Mysql,Laravel,Eloquent,我有一个模型,我正试图用雄辩的语言来质疑它 在我的表格中,我有以下几列 Order ID Invoiced -> default(0) Delivered -> default(0) 我想查询此表,只显示未开票和未发货的订单,但可以显示已发货但未开票或已开票但未发货的订单 我该如何雄辩地做到这一点 这是我的密码: $orders = Order::where('delivered', '<>', 1)->where('invoiced', '<>',
Order ID
Invoiced -> default(0)
Delivered -> default(0)
我想查询此表,只显示未开票和未发货的订单,但可以显示已发货但未开票或已开票但未发货的订单
我该如何雄辩地做到这一点
这是我的密码:
$orders = Order::where('delivered', '<>', 1)->where('invoiced', '<>', 1)->get();
$orders=Order::where('delivered','',1)->where('invoited','',1)->get();
但是,当我将订单更新为“已交付”,但发票仍然未付时,上述操作将从列表中删除订单
我想排除已完成的所有订单,即已交付和已开具发票。这是怎么回事:
$orders = Order::where('delivered', '<>', 1)->where('invoiced', '<>', 1)->get();
$orders=Order::where('delivered','',1)->where('invoited','',1)->get();
更新
未测试,但请尝试此选项,以“应显示未开具发票的订单交付位置,或已开具发票但未交付的订单位置”:
$orders = Order::where(function ($query) {
$query->where('delivered', 1)->where('invoiced', '<>', 1);
})->orWhere(function ($query) {
$query->where('delivered', '<>', 1)->where('invoiced', 1);
})->get();
$orders=Order::where(函数($query){
$query->where('delivered',1)->where('invoited','',1);
})->orWhere(函数($query){
$query->where('delivered','',1)->where('invoited',1);
})->get();
这个怎么办:
$orders = Order::where('delivered', '<>', 1)->where('invoiced', '<>', 1)->get();
$orders=Order::where('delivered','',1)->where('invoited','',1)->get();
更新
未测试,但请尝试此选项,以“应显示未开具发票的订单交付位置,或已开具发票但未交付的订单位置”:
$orders = Order::where(function ($query) {
$query->where('delivered', 1)->where('invoiced', '<>', 1);
})->orWhere(function ($query) {
$query->where('delivered', '<>', 1)->where('invoiced', 1);
})->get();
$orders=Order::where(函数($query){
$query->where('delivered',1)->where('invoited','',1);
})->orWhere(函数($query){
$query->where('delivered','',1)->where('invoited',1);
})->get();
像这样的事情可能会解决您的问题
.. whereNotIn( 'id', [$user_id])->get();
在这个解决方案中,您可以选择一个id范围或一个id。类似的方法可能会解决您的问题
.. whereNotIn( 'id', [$user_id])->get();
在这个解决方案中,您可以选择一个id范围或一个id。这很好,但是它会删除已交付的订单。这应该输出未发货、未开票的订单,但应该显示未发货、或已开票但未发货的订单。我不太明白您想说什么,但这段代码正是这样做的:
SELECT*FROM orders where invoited 1 AND delivered 1
(您问题中的SQL查询)@wollab-您刚才在评论中指定的逻辑与您在问题中指定的逻辑不同抱歉@MarkBaker您的权利。让我更新这个问题。@AlexeyMezenin将其排序,这是我的代码的问题,您的答案是正确的!这是伟大的,但它删除订单,他们已经交付。这应该输出未发货、未开票的订单,但应该显示未发货、或已开票但未发货的订单。我不太明白您想说什么,但这段代码正是这样做的:SELECT*FROM orders where invoited 1 AND delivered 1
(您问题中的SQL查询)@wollab-您刚才在评论中指定的逻辑与您在问题中指定的逻辑不同抱歉@MarkBaker您的权利。让我更新这个问题。@AlexeyMezenin将其排序,这是我的代码的问题,您的答案是正确的!因为这是一个或
,而不是和
,我不能用ANDWhere替换orWhere,因为这显然不是一个函数。调用undefined方法illighted\Database\Query\Builder::ANDWhere()只是另一个WHERE
,而不是,WHERE
WHERE()
是一个AND,因为它是或,而不是和
,我不能用ANDWhere替换WHERE,因为这显然不是一个函数。调用undefined方法illighted\Database\Query\Builder::ANDWhere()只是另一个WHERE
,而不是,WHERE
WHERE()
是和