Я хочу получить условия моего продукта в виде массива, чтобы добавить их в корзину, это dd
моего продукта, когда я пытаюсь добавить его в свою корзину:
array:6 [▼
"id" => 4
"name" => "product four"
"price" => null
"quantity" => "1"
"attributes" => array:1 [▼
"attr" => array:2 [▼
"name" => "weight"
"value" => "45"
]
]
"conditions" => array:2 [▼
0 => CartCondition {#685 ▼ // need to add this
-args: array:4 [▼
"name" => "Black"
"value" => "10000"
"type" => "additional"
"target" => "item"
]
-parsedRawValue: null
}
1 => CartCondition {#692 ▼ // need to add this
-args: array:4 [▼
"name" => "12 inch"
"value" => "25000"
"type" => "additional"
"target" => "item"
]
-parsedRawValue: null
}
]
]
Как вы видите, в отличие от моего
attributes
, мойconditions
не отображается просто как массив, а получает значения в-args:
и-parsedRawValue: null
Когда я пытаюсь добавить товар в корзину, я получаю эту ошибку:
Darryldecode \ Cart \ Exceptions \ InvalidItemException
validation.required
Это моя функция (как я получаю свои conditions
и где я их использую:
public function addingItem(Request $request, $id)
{
//finding product
$product = Product::findOrFail($id);
//get product weight
$weight = $product->weight;
//list of discounts
$discounts = Discount::all();
//get current time
$mytime = Carbon::now();
// get product weight in cart as attribute
$weightArray = [
'attr' => [
'name' => 'weight',
'value' => $weight,
]
];
$customAttributes = []; // my conditions comes from here
if(!empty($request->attr)){
foreach($request->attr as $sub) {
// find the suboption
$sub = Suboption::find($sub);
if (!empty($sub->id)) {
$itemCondition1 = new \Darryldecode\Cart\CartCondition(array(
'name' => $sub->title,
'value' => $sub->price,
'type' => 'additional',
'target' => 'item',
));
array_push($customAttributes, $itemCondition1);
}
}
}
//adding product, options and conditions to cart
Cart::add(array(
'id' => $product->id,
'name' => $product->title,
'price' => $request->input('harga'),
'quantity' => $request->input('quantity'),
'attributes' => $weightArray,
'conditions' => $customAttributes, // added here
));
Session::flash('success', 'This product added to your cart successfully.');
return redirect()->back();
}
Любая идея, почему я получаю эту ошибку и как ее исправить?
// or add multiple conditions as array Cart::condition([$condition1, $condition2]);
- person mafortis   schedule 19.02.2018should you not just add array then CartCondition object
в какой части? PS:(if i didn't misunderstood your point)
все, что касается моего условия, связано с двумя причинами: 1- некоторые продукты могут не иметь никаких условий для выбора пользователем 2- пользователь не может выбрать какое-либо условие для добавления своего заказа. - person mafortis   schedule 19.02.2018$itemCondition1 = new\Darryldecode\Cart\CartCondition(array('name' => $sub->title, 'value' => $sub->price,'type' => 'additional'))
, чтобы просто добавить массивitemCondition1 = ['name' => $sub->title, 'value' => $sub->price,'type' => 'additional']
и что такоеCartCondition
? - person usrNotFound   schedule 19.02.2018CartCondition
если фасад моего пакета не знаю почему, но во всех примерах они его использовали. вот github.com/darryldecode/laravelshoppingcart/#conditions - person mafortis   schedule 19.02.2018[]
и удалениемCartCondition
я получаю ту же ошибку. - person mafortis   schedule 19.02.2018