首页 > 解决方案 > Laravel 从不同的 ID 获取所有行

问题描述

今天我只是在练习我的技能并被卡住了。我只想使用我作为数组放入会话中的特定 id 从数据库中获取数据。问题是,我找不到一种方法来获取包含这些 id 的所有数据。这是我的购物车结帐方法

public function checkout(){
    $uniqid = session('products');
    $post=Post::find($uniqid);
    return view('pages.checkout')->with('post',$post);
  }

我没有得到任何数据,即使我试图得到一些东西,当有 7 个这样的东西时,我也只能得到一个字段。这是会话产品数组

0   "15be4aa3b55f10"
1   "15be4814ceb2a0"
2   "15be4814ceb2a0"
3   "15be4aa3b55f10"
4   "15be4aa3b55f10"
5   "15be4aa3b55f10"
6   "15be4aa3b55f10"
7   "15be4aa3b55f10"

标签: phplaraveleloquent

解决方案


find查询返回单行数据。如果要获取超过 1 个数据,请使用以下all查询:

$post = Post::all();

或者,如果您想获取与您的 id 相同的所有数据,请$uniqid使用以下where查询:

$post = Post::where('column_name', $uniqid)->get();

编辑

如果您的会话有很多 id,您可能需要循环查找与您的会话相同的所有id数据$uniqid

public function checkout(){
   $products = []; 
   foreach(session('products') as $session){
      $post=Post::find($session->id);
      $products[] = $post;
   }
   return view('pages.checkout')->with('products ',$products);
}

推荐阅读