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