如何从多个表中选择和获取数据(Laravel)

如何从多个表中选择和获取数据(Laravel),laravel,eloquent,Laravel,Eloquent,我想通过Laravel Eloquont从多行检索数据: 以下是我尝试过的: $currUser = Auth::User(); ### search $output_product = $currUser->table('products') ->join('product_variants', 'products.product_id', '=', 'product_var

我想通过Laravel Eloquont从多行检索数据:

以下是我尝试过的:

        $currUser = Auth::User();
        ### search
        
        
        $output_product = $currUser->table('products')
            ->join('product_variants', 'products.product_id', '=', 'product_variants.product_id')
            ->join('product_images', 'product_vairants.id', '=', 'product_images.vairant_id')
            ->select('products.title', 'products.description', 'product_variants.price', 'product_variants.quantity', 'product_images.imgurl')->where('products.product_id', $product_id)
            ->get();        
        return $output_product;
                        
        }

但是这个函数没有返回任何东西, 我在这里添加了一个运行正常的查询:
$output\u product=$currUser->products()->where('product\u id',$product\u id)->first()

谢谢

你应该这样做

DB::表(“”)

与user-s表建立一个连接,最后是一个用户id等于$currUser->id的连接,你应该这样做

DB::表(“”)


与user-s表进行联接,最后与一个用户id等于$currUser->id的表进行联接。通过使用查询生成器,您可以执行以下操作:

$output_product = DB::table('products')
->select('products.title', 'products.description', 'product_variants.price','product_variants.quantity', 'product_images.imgurl')
->join('product_variants', 'products.product_id', '=', 'product_variants.product_id')
->join('product_images', 'product_vairants.id', '=', 'product_images.vairant_id')
->where('products.product_id', $product_id)
->get();
return $output_product;

如果您想使用eLoqont。您需要在相应的模型类中定义所有关系

Through query builder,您可以这样做:

$output_product = DB::table('products')
->select('products.title', 'products.description', 'product_variants.price','product_variants.quantity', 'product_images.imgurl')
->join('product_variants', 'products.product_id', '=', 'product_variants.product_id')
->join('product_images', 'product_vairants.id', '=', 'product_images.vairant_id')
->where('products.product_id', $product_id)
->get();
return $output_product;
如果您想使用Eloquont,则需要定义相应模型类中的所有关系

第二次连接中的键入(vairant)?第二次连接中的键入(vairant)?