【问题标题】:How to get get categories and sub - categories Query Builder in Laravel如何在 Laravel 中获取类别和子类别 Query Builder
【发布时间】:2021-08-28 09:18:48
【问题描述】:

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

现在,标题属于一个类别。 Like, Title, B, C, D 在 Cat B 下。所以,想返回两个节点。节点 1 - 返回所有类别,节点 2 - 返回类别下所有标题的数组。

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

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

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

【问题讨论】:

    标签: php mysql database laravel laravel-query-builder


    【解决方案1】:

    我会选择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);
    

    【讨论】:

    • 谢谢。我不断收到错误“未定义发布方法”
    • 能否请您发布整个堆栈跟踪,因为现在我不知道为什么会出现此错误。
    猜你喜欢
    • 1970-01-01
    • 2015-05-14
    • 2019-10-05
    • 2012-12-26
    • 1970-01-01
    • 1970-01-01
    • 2019-01-17
    • 1970-01-01
    • 2014-07-09
    相关资源
    最近更新 更多