laravel:用 `foreach ( Mymodel :: all ( ) as $object)` 替换的最佳方法是什么?

问题描述 投票:0回答:1

我有一个

cart
模型,它有一个访问器方法调用
isFullAccepted()
,在检查关系状态后返回
true/false

在另一个访问器调用中

remaingingCarts()
我返回所有
carts
,它的
isFullAccepted()
是假的。

remaingingCarts()
访问器中是:

public function remainingCarts(){
    $carts = Cart::all();
    $cartIds = [];
    foreach($carts as $cart){
        if (!$cart->isFullAccepted()){
            array_push($cartIds , $cart->id);
        }
    }
    return Cart::findMany($cartIds);
}

这样快吗?

foreach
on
all()
不会造成繁重的处理?

php laravel eloquent foreach accessor
1个回答
0
投票

我想你必须尝试一下where条件。

public function remainingCarts(){
    $carts = Cart::where('is_full_accepted',false)->get();
    return $carts;
}

如果您获得的购物车

isFullAccepted
是错误的,请尝试此操作。

© www.soinside.com 2019 - 2024. All rights reserved.