/** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request, Order $order) { // @todo: request validation // create a new share with contact information $share = new Share($request->only('email', 'phone', 'comments')); $share->order_id = $order->id; $share->save(); // attach the share items $shareItems = $order->getShareItems($request->input('products')); $share->items()->saveMany($shareItems); return redirect()->action('ShareController@show', [$order->id, $share->id]); }
private function generateOrderSharesFor($group) { $users = User::all(); foreach ($group->orders as $order) { foreach ($users->random(6)->values()->all() as $user) { $share = new Share(['email' => $user->email, 'order_id' => $order->id]); $share->save(); $items = []; $order->products->random(5)->each(function ($item) { $items[$item->id] = rand(1, 7) * $item->pivot->step_amount; }, array()); $items = $order->getShareItems($items); $share->items()->saveMany($items); } } }