我有一个名为table的表UserWords,其中有一个word_id列,我想用它来从Words表中获取行,并将它们连接起来就像连接一样.这样,每个人都会有来自行中的信息UserWords和Words.我在以下方面定义了这样的关系UserWord:
class UserWord extends Eloquent{
public function word(){
$this->belongsTo('Word');
}
}
Run Code Online (Sandbox Code Playgroud)
然后,我尝试获取所有UserWords和Words,如下所示:
$words = UserWord::with("word")->
whereRaw("user_id = ".Auth::user()->id.
" AND lang1 = '".$lang1.
"' AND lang2 = '".$lang2."'")
->get();
Run Code Online (Sandbox Code Playgroud)
如果我没有with(),这可以工作.那么,我做错了什么?或者我是否必须创建一个原始的JOIN以获得我想要的东西?我以前从未做过关系,所以也许我在想这根本错误?无论哪种方式,请教我不仅仅是给出答案,如果可以的话!我阅读了文档,我认为它应该可行,但事实并非如此......我在这里问.
编辑:我得到的错误是:
Call to a member function addEagerConstraints() on a non-object
Run Code Online (Sandbox Code Playgroud)
pea*_*man 12
您的关系的定义不正确,您必须返回belongsTo方法调用的结果.请尝试以下方法:
class UserWord extends Eloquent {
public function word(){
return $this->belongsTo('Word');
}
}
Run Code Online (Sandbox Code Playgroud)