php - 使用 Laravel Eloquent Relationship 查询有什么优势?

标签 php database laravel eloquent

因此,我正在尝试通过实现 Eloquent 关系来改进我的查询。 假设我有一个threads 表,每个线程都有回复

我需要的是一个包含所有回复数组的线程信息的 JSON 对象。

目前,我可以用它实现我想要的。

public function show($threadId){
        $threads = ThreadView::find($threadId);
        $threads->replies = ReplyView::where('threadId', $threadId)->get();
        return response()->json($threads, 200);
    }

有了 Eloquent 关系,我可以用这样的东西达到同样的结果。

public function show($threadId) {

    $threads= ThreadView::find($threadId);
    $threads->replies= ThreadView::find($threadId)->Replies;

    return response()->json($threads, 200);
}

使用关系有优势吗?它们在我看来都一样。

最佳答案

使用 Eloquent,您可以更短地完成此操作:

public function show($threadId) {
    $threads = ThreadView::with('replies')->find($threadId);
    return response()->json($threads, 200);
}

with函数将急切加载关系,而无需您编写查询。

这就是 Eloquent 的优势,它会为您编写查询。无需为您创建连接查询或额外查询。

关于php - 使用 Laravel Eloquent Relationship 查询有什么优势?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48345143/

相关文章:

mysql - 如何使用WITH子句组合MYSQL查询

php - Laravel - 注册不在数据库中保存表单响应

PHP SQL Server 连接工作或不工作

PHP 框架 + LDAP

php - 如何自动刷新新闻源

php - WooCommerce 自定义产品验证

database - 排序上/下投票项目的技术

mysql - 计算子查询 SQL 的百分比

javascript - 如何在 axios 调用后立即更新 Vue?

laravel - 如何修复 laravel 和 chartjs 中的数组到字符串转换错误?