Laravel collection-> pu sh () не работает должным образом - PullRequest
0 голосов
/ 03 февраля 2020

Я хочу собрать продукт и положить sh в корзину сеанса.

$product= Product::find(1);
$product2= Product::find(2);

session(['cart' => collect($product)]);

session(['cart' => session('cart')->push($product2)])

Это мой вывод с некоторыми фиктивными данными.

{
  "0": {
    "id": 2,
    "sku": "SKU914",
    "price": 1.0,
    "special_price": 0.91,
    "weight": 763,
    "barcode": "0434120288572",
    "created_at": "2020-01-31 14:39:53",
    "updated_at": "2020-01-31 14:39:53"
  },
  "id": 1,
  "sku": "SKU579",
  "price": 22.8,
  "special_price": 19.14,
  "weight": 478459,
  "barcode": "1390377688",
  "created_at": "2020-01-31 14:34:59",
  "updated_at": "2020-01-31 14:34:59"
}

Второй продукт ($ product2), который я нажал, стал вне массива. Как мне сделать, чтобы это было похоже на "0": {}, "1": {}

Ответы [ 3 ]

0 голосов
/ 03 февраля 2020

вам не нужно ничего объединять

2 запрос будет медленным, поэтому лучше выполнить только один запрос

$Ids = [1,2];
if(true) { // can add any condtion here
   array_push(3); // if you need to push new id
}
$product= Product::whereIn("id",$Ids)->get();
session(['cart' => $product]);

вы можете применить whereIn() условие

0 голосов
/ 03 февраля 2020

Просто поместите $ product в массив.

session(['cart' => collect([$product])]);
session(['cart' => session('cart')->push($product2)]);

Или просто pu sh

session(['cart' => session('cart')->push($product)]);
session(['cart' => session('cart')->push($product2)]);
0 голосов
/ 03 февраля 2020

согласно вашему запросу просто используйте вот так

session(['cart' => collect($product)]);

$card1[] = session('cart');
$card1[] = collect($product1);
session(['cart' => $card1])

$card2[] = session('cart');
$card2[] = collect($product2);
session(['cart' => $card2])

или вы можете использовать whereIn ()

$products = Product::whereIn("id",[1,2])->get()->toArray();
session(['cart' => $products])

или можете использовать array_merge

session(['cart' => collect($product)]);

$cart = array_merge(session('cart'),collect($product2));
session(['cart' => $cart])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...