Penapisan tatasusunan Laravel 9
P粉604848588
P粉604848588 2024-01-06 15:56:43
0
1
379

Saya mempunyai tatasusunan cart_items ini dan ia berfungsi dengan baik apabila dipetakan ke storan pangkalan data (seperti yang ditunjukkan dalam kod).

$cart_items = [
    {"id":8,
    "cart_id":7,
    "product_id":4,
    "variation_id":null,
    "quantity":1,
    "price":30,
    "tax":0,
    "attrs":null,
    "gross_total":30,
    "net_total":30,
    "tax_total":0,
    "product":{
        "id":4,
        "parent_id":null,
        "category_id":1,
        "shop_id":1,
        "title":"Ladies Blazer",
        "unit":"item",
        "sale_price":30,
        "general_price":35
        }
    },
    {
    "id":9,
    "cart_id":7,
    "product_id":1,
    "variation_id":null,
    "quantity":2,
    "price":11,
    "tax":0,
    "attrs":null,
    "gross_total":22,
    "net_total":22,
    "tax_total":0,
    "product":{
        "id":1,
        "parent_id":null,
        "category_id":2,
        "shop_id":2,
        "title":"Sport Bottles",
        "unit":"item",
        "sale_price":11,
        "general_price":9
        }
    }
]
$line_item_params = $cart_items->map(function (CartItem $item) {
        $p = [
                'product_id' => $item->product_id,
                //add filtered shop_id here        
                'variation_id' => $item->variation_id,
                'product_title' => $item->product->title,
                'quantity' => $item->quantity,
                'price' => $item->price,
                'tax' => $item->tax,
                'attrs' => $item->attrs,
            ];
        return $p;
    })->toArray();

Saya perlu menapis tatasusunan menggunakan Arr:where() dengan product shop_id ialah nilai khusus.

Saya cuba menggunakan fungsi if tetapi kod itu hanya bergelung dan kembali benar di tempat shop_id wujud.

$line_item_params = $cart_items->map(function (CartItem $item) {

        if ($item->product['shop_id'] == 1){
            $p = [
                    'product_id' => $item->product_id,
                       //add filtered shop_id here        
                       //'shop_id' => $shop->id,
                    'variation_id' => $item->variation_id,
                    'product_title' => $item->product->title,
                    'quantity' => $item->quantity,
                    'price' => $item->price,
                    'tax' => $item->tax,
                    'attrs' => $item->attrs,
                ];
        }
        return $p;
    })->toArray();

Saya perlu menapis tatasusunan shop_id produk kepada nilai tertentu.

P粉604848588
P粉604848588

membalas semua(1)
P粉512729862

Saya tahu penyelesaian ini tidak digalakkan. Itu akan menjadi terlalu mudah. Anda mahu menggunakan komponen Laravel 9 untuk melakukan ini. Saya akan memberitahu anda pula:

$shop_id = 1;
$result = array_filter($arr, fn($v) => $v["product"]["shop_id"] == $shop_id);

Contoh penuh: https://3v4l.org/19gnD

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!