本文整理汇总了PHP中app\Order::placeOrders方法的典型用法代码示例。如果您正苦于以下问题:PHP Order::placeOrders方法的具体用法?PHP Order::placeOrders怎么用?PHP Order::placeOrders使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类app\Order
的用法示例。
在下文中一共展示了Order::placeOrders方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: store
/**
* Store a newly created resource in storage.
*
* @return Response
*/
public function store(Request $request)
{
try {
$validator = Validator::make($request->all(), $this->form_rules);
if ($validator->fails()) {
return redirect()->route('freeproducts.create', [$request->input('order_id')])->withErrors($validator->errors())->withInput();
}
//As is not defined that way is going to deliver products for every winner, I will confirm that the total winning is equal to total products in the cart
$cart_detail = OrderDetail::where('order_id', $request->input('order_id'))->get();
if ($request->input('draw_number') > $cart_detail->count()) {
return redirect()->route('freeproducts.create', [$request->input('order_id')])->withErrors(trans('freeproduct.drawnumber_exceed_total_products'))->withInput();
} else {
//Process the order. The process is the same as with a shopping cart. The address is not requested
//Direction is taken as the one with the user by default. Not having, it notifies the user to create a.
$errors = Order::placeOrders('freeproduct');
if ($errors) {
return redirect()->route('freeproducts.create', [$request->input('order_id')])->withErrors($errors)->withInput();
} else {
$user = \Auth::user();
//Save Free Product
$freeproduct = new FreeProduct();
$freeproduct->user_id = $user->id;
$freeproduct->description = $request->input('description');
$freeproduct->start_date = $request->input('start_date');
$freeproduct->end_date = $request->input('end_date');
$freeproduct->participation_cost = $request->input('participation_cost');
$freeproduct->min_participants = $request->input('min_participants');
$freeproduct->max_participants = $request->input('max_participants');
$freeproduct->max_participations_per_user = $request->input('max_participations_per_user');
$freeproduct->draw_number = $request->input('draw_number');
$freeproduct->draw_date = $request->input('draw_date');
$freeproduct->save();
//Because the method placeOrders products generates orders for each vendor, you need to associate these orders to free product
$orders = Order::ofType('freeproduct')->ofStatus('paid')->where('user_id', $user->id)->get();
if ($orders) {
foreach ($orders as $order) {
//Each order products are searched and a duplicate of the same is made, marking them as a free product. This will allow the product goes on the results of the advanced search
$order_detail = OrderDetail::where('order_id', $order->id)->get();
if ($order_detail) {
foreach ($order_detail as $detail) {
$product = Product::find($detail->product_id);
$productactual = $product->toArray();
unset($productactual['id']);
unset($productactual['num_of_reviews']);
$productactual['user_id'] = $user->id;
$productactual['stock'] = $detail->quantity;
$productactual['type'] = 'freeproduct';
$productactual['parent_id'] = $product->id;
$newproduct = Product::create($productactual);
}
}
if (!FreeProductOrder::where('order_id', $order->id)->first()) {
//order registration as a free product
$order_to_fp = new FreeProductOrder();
$order_to_fp->freeproduct_id = $freeproduct->id;
$order_to_fp->order_id = $order->id;
$order_to_fp->save();
}
}
}
//Send message process Ok and redirect
Session::flash('message', trans('freeproduct.saved_successfully'));
return redirect()->route('freeproducts.show', [$freeproduct->id]);
}
}
} catch (ModelNotFoundException $e) {
Log::error($e);
return redirect()->back()->withErrors(['induced_error' => [trans('freeproduct.error_exception')]])->withInput();
}
}
示例2: placeOrder
/**
* Starts the checkout process.
*
* @param int $addressId The address id selected to be copied
* @return Response
*/
public function placeOrder($type)
{
$errors = Order::placeOrders($type);
if ($errors) {
return redirect()->route('orders.show_cart')->withErrors(array('main_error' => array($errors)));
} else {
Session::push('message', trans('store.order_placed'));
return redirect()->route('orders.show_orders');
}
}