首页 文章

Laravel 4 - 简单加入Eloquent?

提问于
浏览
2

我只想尝试用Laravel 4的Eloquent ORM加入2个表 . 表格是:

表:产品

ID | CATEGORY_ID | NAME
-------------------------
 1 |      2      | Hammer  
 2 |      2      | Saw
 3 |      1      | Apple

表:类别

ID | NAME
-----------
 1 | Food
 2 | Tools

当然这可以用SQL来完成:

SELECT products.name, categories.name
FROM products
INNER JOIN categories ON products.category_id = categories.id

这将输出:

Hammer | Tools
Saw    | Tools
Apple  | Food

但是有没有更简单的方法来使用Laravel的Eloquent获得相同的结果,也许使用内置表关系?

1 回答

  • 3

    在模型中设置多对一关系:

    Category.php

    public function products() {
        return $this->hasMany('Product');
    }
    

    Product.php

    public function category() {
        return $this->belongsTo('Category');
    }
    

    然后打电话:

    $products = Product::with('category')->get();
    

    对于结果的每个元素, $products->name$products->category->name 将包含您的字段 .

相关问题