php - 如何在 Laravel 中获取类别和子类别 Query Builder
问题描述
再会。我正在根据下表设计一个 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();
请问,实现这一目标的最佳方法是什么?
解决方案
我会选择雄辩的模型
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);
推荐阅读
- data-modeling - RavenDb 不同的数据库实例包括
- react-native - 在 FlatList (React-Native) 中多选项目时出现滞后问题
- text - 应用 agnoster zsh 主题后,如何在终端中修复此损坏的文本?
- java - 以编程方式设置 lottie 动画视图的宽度和高度
- uitabbar - 是否可以在 tvOS 的 uitabbaritems 上为聚焦和选定状态使用不同的颜色?
- python - 而不是使用 drop_first=True,我如何在 pandas 中设置虚拟编码的参考级别
- php - 以编程方式增加唯一列的计数
- java - 二维数组中列的总和,Java
- android - 最新的 Samsung Pass 库?
- version-control - 在后端和前端之间管理版本的最佳实践