Laravel 4中的分类树

时间:2014-07-08 13:47:09

标签: php mysql laravel laravel-4

我正在尝试开发一个允许在特定类别下发布商品的网站。这些类别几乎总是至少有一个父类别,并且我希望能够显示一个“树”字样'这些类别中的用户能够浏览类别和文章。类别数据库将包含列idparent_idcat_name

是否有更有效的方法在laravel中执行此操作而不是查找顶级类别然后循环查找每个类别中的所有子类别?在哪里是执行逻辑的最佳位置,以及将此信息传递给视图的最佳方式是什么?

如果需要更多说明,请告诉我。就像我说我对laravel和框架一般都是新手一样,所以我可能会遗漏一些明显的东西。

2 个答案:

答案 0 :(得分:3)

您可以在Laravel中定义关系以自动加载对象的关系。

查看有关RelationsEager Loading

的文档
class Category extends Eloquent
{
    public function subcategories() {
        return $this->hasMany('Category','parent_id');
    }
}

在您的控制器中:

Category::with('subcategories')->get(); //Get all categories and their subcategories

你甚至可以这样做(尽管我不确定)Category::with('subcategories.subcategories');

答案 1 :(得分:1)

手动处理嵌套集是非常艰巨的。我建议你使用现有的包裹:

Baum

  

Baum是Laravel 4的Eloquent ORM的Nested Set模式的实现。