首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我能否建立一个雄辩的模型,用一个sql连接来加载一个关系,而不是生成单独的sql查询?

我能否建立一个雄辩的模型,用一个sql连接来加载一个关系,而不是生成单独的sql查询?
EN

Stack Overflow用户
提问于 2020-01-06 12:13:09
回答 1查看 303关注 0票数 0

我是一个来自CakePHP的开发人员,用Laravel做我的第一个项目。在CakePHP中,当我定义模型及其关系时,有一个选项可以在关系上设置连接策略:strategy (joinselect)。默认情况下,它使用join,当我加载相关模型时,它将通过添加JOIN语句在单个查询中这样做。您可以选择使用select来生成单独的查询。

例如,当我在Laravel中使用急切加载时:

代码语言:javascript
运行
复制
$user = App\User::with(['articles'])->first();

这实际上会生成两个查询,一个用于获取用户的记录,另一个用于获取相关的文章。这与我在我的select模型中指定了CakePHP策略一样。但是,我希望使用join策略,这样我就可以按照相关表的列进行排序或过滤。我还没找到办法。像这样的东西在拉拉/雄辩中存在吗?

EN

回答 1

Stack Overflow用户

发布于 2020-01-06 12:30:38

使用Laravel,它非常简单地使用Joins获取记录。假设左联接,这是获取记录的示例代码:(您还可以使用任何一个连接-最适合您的需要)

代码语言:javascript
运行
复制
//assuming **title** and **description** as amongst the article fields
// and that you've passed the user's id as **$user_id**
//I've also assumed the articles table has a user id field **user_id** which has the corresponding user's id.
    $user = App\User::leftJoin('articles','users.id','articles.user_id')
->where('users.id',$user_id)
->select('users.*','artcles.title as title','articles.description as description')
->get();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59611910

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档