获取或获取最新或最后在 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);

对于评论中的第二个问题,在您想要的 urlcontroller 函数中执行此操作 -

$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