我是新来的拉威尔,所以我不知道到底是什么问题。所以我会详细描述一下。首先我有两个表文章和评论,关系为1-1,这意味着一篇文章只能有一个评论。代码是:
$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”关系做同样的事吗?我该怎么做?
3条答案
按热度按时间y1aodyip1#
你试过这样的方法吗:
或者
bvn4nwqk2#
试试这个
$article=article::where(db::raw('length(content)',>',db::raw('select length(content)from comments where article_id=id'))->with(['comments'])->get();
7tofc5zh3#
试试这个:
我会试着想另一种方法,但这是一种方法。
另一种方法可能是使用join和where子句为其构建查询。