【发布时间】:2018-06-21 11:43:15
【问题描述】:
我是 Laravel 的新手,所以我不知道这个问题到底是什么。所以我将详细描述它。首先我有2个表Article和Comment,关系1-1,这意味着一篇文章只能有1个cmets。 代码是:
$article = Article::with('comments')
结果是
以下是我得到的评论属性:
但是现在,我希望构建器仅选择文章内容长度 > 其评论内容长度的文章。在 MySQL 语句中是
"Select from articles a where length(a.content) > (Select length(c.content) from comments c where c.article_id = a.id)
我已尝试使用 raw 和 join 并且它有效。但我想知道我可以对“with”关系做同样的事情吗?我该怎么做?
【问题讨论】:
-
文章内容长度 > 文章内容长度?没有意义。
-
@Wreigh 抱歉,它的评论内容长度。这是我的错
-
我认为,您的规范在技术上是错误的。
with加载关系。但是您要做的是根据其关系检索模型。Article::with('comments')表示加载所有文章及其相关评论。我认为最好改用wheres,你不觉得吗? -
你能写出完整的代码吗?我想获得条件取决于它与 cmets 的关系的文章(其中长度(article.content)>长度(article.comment.content))
-
要获取文章内容长度大于评论内容长度的所有文章吗?
标签: mysql laravel migration relation