项目和用户是多对多相关的,如何只选择具有相关用户的项目?我必须使用加入吗?就像是:
$projects = Project::with('users')->having('count(users)','>',0)->get();
Run Code Online (Sandbox Code Playgroud) 我有类似这样的情况:
trait Abst{
type T
def met1(p: T) = p.toString
def met2(p: T, f: Double=>this.type){
val v = f(1.0)
v.met1(p)
}
}
class MyClass(x: Double) extends Abst{
case class Param(a:Int)
type T = Param
val s = met2(Param(1), (d: Double) => new MyClass(d))
}
Run Code Online (Sandbox Code Playgroud)
并且在我运行之前它不显示错误,然后它说:
类型不匹配; 发现:MyClass,必需:MyClass.this.type
我尝试了一个泛型类型的解决方案,但后来我发现这个与TT不同的冲突
所以我只需要克服上面的错误信息,如果可能的话?
更新
因此,事实证明这this.type是该单个实例的单例类型.我在评论中提出了用法
val s = met2(Param(1), (d: Double) => (new MyClass(d)).asInstanceOf[this.type])
Run Code Online (Sandbox Code Playgroud)
所以,如果有人对此发表评论,我知道它是多么丑陋,只是感兴趣它是多么不安全?
你们都建议在课外移动Param的定义,我绝对同意.所以它的定义将在伴随对象MyClass中