获取或获取最新或最后在 laravel 中创建多行
Get or fetch Latest or last create multiple rows in laravel
我需要绝望的帮助。我是 laravel 和编程的新手。
我有一个销售控制器,它使用 jquery 和 select 从表单中获取多条记录。
销售商店控制器看起来像:
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]);
}
此代码运行良好。
现在的情况是我想获取这些最后创建的特定记录,以某种方式将其发送到其他页面或作为发票。关于如何实现这一目标的任何帮助将不胜感激?谢谢
你可以做到
$sales = Sale::latest()->take(count($request['product_id']))->get();
latest()
将按创建日期降序排列所有销售额。
如果 count($request['product_id'])
是 5,take()
将获取前 5 个销售。
创建一个 new array
来保存 sales and product
数据,并使用 data
.
将 redirect
保存到您的 desired url
$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);
对于评论中的第二个问题,在您想要的 url
的 controller
函数中执行此操作 -
$data = [];
if ($request->session()->has('data')) {
$data = $request->session()->get('data');
}
return view('your view', compact('data'));
然后在你看来 -
@foreach($data as $d)
{{$d['sales']}} //here $d['sales'] is your sales object
{{$d['product']}} //here $d['product'] is your product object
@endforeach
我需要绝望的帮助。我是 laravel 和编程的新手。
我有一个销售控制器,它使用 jquery 和 select 从表单中获取多条记录。
销售商店控制器看起来像:
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]);
}
此代码运行良好。
现在的情况是我想获取这些最后创建的特定记录,以某种方式将其发送到其他页面或作为发票。关于如何实现这一目标的任何帮助将不胜感激?谢谢
你可以做到
$sales = Sale::latest()->take(count($request['product_id']))->get();
latest()
将按创建日期降序排列所有销售额。
如果 count($request['product_id'])
是 5,take()
将获取前 5 个销售。
创建一个 new array
来保存 sales and product
数据,并使用 data
.
redirect
保存到您的 desired url
$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);
对于评论中的第二个问题,在您想要的 url
的 controller
函数中执行此操作 -
$data = [];
if ($request->session()->has('data')) {
$data = $request->session()->get('data');
}
return view('your view', compact('data'));
然后在你看来 -
@foreach($data as $d)
{{$d['sales']}} //here $d['sales'] is your sales object
{{$d['product']}} //here $d['product'] is your product object
@endforeach