使用Laravel 4嵌套集类别

时间:2013-11-25 21:53:15

标签: mysql laravel laravel-4 eloquent nested-sets

我有categories

CREATE TABLE categories (
name
clean_name
image
description
lft
rgt
)

我需要能够查询按类别组织的类别中的所有产品。换句话说:

Products
-Electronics
--Portable
>>> Product 1
>>> Product 2
--TV
>>> Product 1
>>> Product 2
>>> Product 3

所以我希望能够遍历Electronics并在他们独特的类别中展示产品......

到目前为止,我所能做的只是使用raw查询来返回类别,但所有这些都在一个级别上,而且没有产品。

理想情况下,我很乐意使用Eloquent来管理所有这些......

1 个答案:

答案 0 :(得分:1)

您的问题不清楚到目前为止您确切设置了什么,但基本上您会想要:

  • 具有ID和名称的类别表
  • 具有id,category_id和名称的产品表。

然后,您需要为每个模型提供相应的模型:

//category model
Category extends Eloquent
{
    public function products()
    {
        return $this->hasMany('Product');
    }
}

//product model
Product extends Eloquent
{
    public function category()
    {
        return $this->BelongsTo('Category');
    }
}

然后,您可以使用您的产品获取类别,也可以像这样使用嵌套循环:

$categories Category::with('Products')->get();
foreach($categories as $category)
{
    echo '<h2>'.$category->name.'</h2>'
    foreach($category->products as $product)
    {
        echo $product->name
    }
}

希望这有帮助,如果没有,你需要发布一些关于你到目前为止的更多细节