如何在 Laravel 中获取类别和子类别查询生成器

How to get get categories and sub - categories Query Builder in Laravel

美好的一天。我正在根据下面的 table 设计一个 API。我正在使用的数据库是一个设计不佳的遗留数据库。

现在,标题在一个类别下。比如,Title,B,C,D都在Cat B下。所以,想要return两个节点。节点 1 - returning 所有类别,节点 2 - returning 类别下所有标题的数组。

我正在使用 Laravel 查询生成器。我可以使用下面的代码获取类别。现在的问题是获取标题。

$rows = DB::connection('mysql3')
            ->table('tbl_form')
            ->selectRaw("DISTINCT UPPER(LTRIM(`type`)) as category")
            ->where('deleted', 0)
            ->orderBy('category', 'asc')
            ->get();

请问,实现此目标的最佳方法是什么?

我会选择 eloquent models

class Category extends Model
{
    protected $table = 'tbl_form'; // 'posts'

    public function posts()
    {
        return $this->hasMany(Post::class, 'category', 'category')->select(['title']);
    }
}
class Post extends Model
{
    protected $table = 'tbl_form'; // 'posts'

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

然后像这样检索它:

$categories = Category::all();
dd($categories[0]->posts);