如何在 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);
美好的一天。我正在根据下面的 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);