2015-11-04 55 views
0

我试图使用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');   
}); 

我可以得到产品类别相关表的内容。但是,如何嵌套其他连接并从产品类别翻译表中获取相关数据?

回答

0

我建议你看一下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,你可以使它与产品表类似。

+0

嗨,谢谢。也许我没有很好地解释自己。我的网站是多语言的,因此我无法获得类别翻译的一对一关系。我在问如何使用查询生成器来嵌套连接。我需要使用查询生成器,而不是雄辩,因为我正在使用yajra datatables软件包,并且它无法正常工作。 –