我需要绝望的帮助。我是laravel和编程的新手。
我有一个销售控制器,它使用jquery从表单中获取多个记录并选择。
Sales Store控制器如下所示:
for ($i=0; $i < count($request['product_id']); ++$i)
{
$sales= new Sale;
$sales->product_id = $request['product_id'][$i];
$sales->qty= $request['qty'][$i];
$sales->user_id = Auth::user()->id;
$sales->save();
$product = new Product;
$product->where('id', '=', $request['product_id'][$i])->decrement('stock', $request['qty'][$i]);
}
这段代码工作正常。
现在的情况是,我想获取这些最后创建的特定记录,以某种方式将其发送到其他页面或作为发票。任何帮助将非常感谢如何实现这一目标?感谢。
答案 0 :(得分:1)
将new array
数据sales and product
和redirect
保存到desired url
data
。
$data = array();
for ($i=0; $i < count($request['product_id']); ++$i)
{
$sales= new Sale;
$sales->product_id = $request['product_id'][$i];
$sales->qty= $request['qty'][$i];
$sales->user_id = Auth::user()->id;
$sales->save();
$product = new Product;
$product->where('id', '=', $request['product_id'][$i])->decrement('stock', $request['qty'][$i]);
$data[]['sales'] = $sales;
$data[]['product'] = $product;
}
return redirect("/your desired url")->with('data', $data);
对于评论中的第二个问题,在您希望的controller
的{{1}}函数中执行此操作 -
url
然后在你看来 -
$data = [];
if ($request->session()->has('data')) {
$data = $request->session()->get('data');
}
return view('your view', compact('data'));
答案 1 :(得分:0)
你可以做到
$sales = Sale::latest()->take(count($request['product_id']))->get();
latest()
将按创建日期的顺序按顺序排序所有销售。
如果count($request['product_id'])
为5,则take()
将获取前5个销售额。