如何在Laravel中嵌套连接4.2查询生成器
问题描述:
我试图使用Laravel 4.2查询生成器获取产品列表。 这些表如下如何在Laravel中嵌套连接4.2查询生成器
PRODUCTS
products.product_category_id
产品类别
products.product_category_id = product_categories.id
PRODUCT CATEGORY TRANSLATIONS
product_categories.id = product_category_translations.product_category_id
我现在正在做的是...
$products = DB::table('products')->join('product_categories', function($join){
$join->on('products.product_category_id','=','product_categories.id');
});
我可以得到产品类别相关表的内容。但是,如何嵌套其他连接并从产品类别翻译表中获取相关数据?
答
我建议你看一下laravel文档,找到一种与模型建立关系的正确方法。 http://laravel.com/docs/4.2/eloquent#relationships
然后,您可以创建模型,如
class Product extends Eloquent {
public function category()
{
return $this->hasOne('ProductCategory');
}
}
class ProductCategory extends Eloquent {
public function product()
{
return $this->hasOne('Product');
}
public function translation()
{
return $this->hasOne('Translation');
}
...
然后获取最后一个表它会像下面的那样简单:
$category = Category::find($categoryId);
$translation= $category ->translation;
或者,如果你有ID,是productId,你可以使它与产品表类似。
嗨,谢谢。也许我没有很好地解释自己。我的网站是多语言的,因此我无法获得类别翻译的一对一关系。我在问如何使用查询生成器来嵌套连接。我需要使用查询生成器,而不是雄辩,因为我正在使用yajra datatables软件包,并且它无法正常工作。 –